diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 index b24d71e..854083a --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,36 @@ +<<<<<<< HEAD +# Specifies intentionally untracked files to ignore when using Git +# http://git-scm.com/docs/gitignore + +*~ +*.sw[mnpcod] +.tmp +*.tmp +*.tmp.* +*.sublime-project +*.sublime-workspace +.DS_Store +Thumbs.db +UserInterfaceState.xcuserstate +$RECYCLE.BIN/ + +*.log +log.txt +npm-debug.log* + +/.idea +/.ionic +/.sass-cache +/.sourcemaps +/.versions +/.vscode +/coverage +/dist +/node_modules +/platforms +/plugins +/www +======= # These are some examples of commonly ignored file patterns. # You should customize this list as applicable to your project. # Learn more about .gitignore: @@ -48,3 +81,4 @@ Thumbs.db *.mov *.wmv +>>>>>>> eed259fe04bcb0a948b742c308683ae4205b0fac diff --git a/angular.json b/angular.json new file mode 100755 index 0000000..784b4bf --- /dev/null +++ b/angular.json @@ -0,0 +1,187 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "defaultProject": "app", + "newProjectRoot": "projects", + "projects": { + "app": { + "root": "", + "sourceRoot": "src", + "projectType": "application", + "prefix": "app", + "schematics": {}, + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "www", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "src/assets", + "output": "assets" + }, + { + "glob": "**/*.svg", + "input": "node_modules/ionicons/dist/ionicons/svg", + "output": "./svg" + } + ], + "styles": [ + { + "input": "src/theme/variables.scss" + }, + { + "input": "src/global.scss" + } + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "extractCss": true, + "namedChunks": false, + "aot": true, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + } + ] + }, + "ci": { + "progress": false + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "app:build" + }, + "configurations": { + "production": { + "browserTarget": "app:build:production" + }, + "ci": { + "progress": false + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "app:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "styles": [], + "scripts": [], + "assets": [ + { + "glob": "favicon.ico", + "input": "src/", + "output": "/" + }, + { + "glob": "**/*", + "input": "src/assets", + "output": "/assets" + } + ] + }, + "configurations": { + "ci": { + "progress": false, + "watch": false + } + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "tsconfig.app.json", + "tsconfig.spec.json", + "e2e/tsconfig.json" + ], + "exclude": ["**/node_modules/**"] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "app:serve" + }, + "configurations": { + "production": { + "devServerTarget": "app:serve:production" + }, + "ci": { + "devServerTarget": "app:serve:ci" + } + } + }, + "ionic-cordova-build": { + "builder": "@ionic/angular-toolkit:cordova-build", + "options": { + "browserTarget": "app:build" + }, + "configurations": { + "production": { + "browserTarget": "app:build:production" + } + } + }, + "ionic-cordova-serve": { + "builder": "@ionic/angular-toolkit:cordova-serve", + "options": { + "cordovaBuildTarget": "app:ionic-cordova-build", + "devServerTarget": "app:serve" + }, + "configurations": { + "production": { + "cordovaBuildTarget": "app:ionic-cordova-build:production", + "devServerTarget": "app:serve:production" + } + } + } + } + } + }, + "cli": { + "defaultCollection": "@ionic/angular-toolkit" + }, + "schematics": { + "@ionic/angular-toolkit:component": { + "styleext": "scss" + }, + "@ionic/angular-toolkit:page": { + "styleext": "scss" + } + } +} diff --git a/browserslist b/browserslist new file mode 100755 index 0000000..b15c7fa --- /dev/null +++ b/browserslist @@ -0,0 +1,12 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +> 0.5% +last 2 versions +Firefox ESR +not dead +not IE 9-11 # For IE 9-11 support, remove 'not'. diff --git a/build.json b/build.json new file mode 100755 index 0000000..6d76295 --- /dev/null +++ b/build.json @@ -0,0 +1,18 @@ +{ + "android": { + "debug": { + "keystore": "releaseApk/pd-genie-officer.jks", + "storePassword": "pdgenieofficer", + "alias": "my-alias", + "password" : "pdgenieofficer", + "keystoreType": "" + }, + "release": { + "keystore": "releaseApk/pd-genie-officer.jks", + "storePassword": "pdgenieofficer", + "alias": "my-alias", + "password" : "pdgenieofficer", + "keystoreType": "" + } + } +} diff --git a/config.xml b/config.xml new file mode 100755 index 0000000..1bc4608 --- /dev/null +++ b/config.xml @@ -0,0 +1,127 @@ + + + PD Genie Field Visit + info@pdgenie.com + PD Genie + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js new file mode 100755 index 0000000..b95b8f5 --- /dev/null +++ b/e2e/protractor.conf.js @@ -0,0 +1,28 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); + } +}; diff --git a/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts new file mode 100755 index 0000000..7bacf55 --- /dev/null +++ b/e2e/src/app.e2e-spec.ts @@ -0,0 +1,19 @@ +import { AppPage } from './app.po'; + +describe('new App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + describe('default screen', () => { + beforeEach(() => { + page.navigateTo('/home'); + }); + it('should have a title saying Home', () => { + page.getPageOneTitleText().then(title => { + expect(title).toEqual('Home'); + }); + }); + }); +}); diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts new file mode 100755 index 0000000..be943f8 --- /dev/null +++ b/e2e/src/app.po.ts @@ -0,0 +1,15 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo(destination) { + return browser.get(destination); + } + + getTitle() { + return browser.getTitle(); + } + + getPageOneTitleText() { + return element(by.tagName('app-home')).element(by.deepCss('ion-title')).getText(); + } +} diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json new file mode 100755 index 0000000..77d311e --- /dev/null +++ b/e2e/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "module": "commonjs", + "target": "es5", + "types": [ + "jasmine", + "jasminewd2", + "node" + ] + } +} diff --git a/google-services.json b/google-services.json new file mode 100755 index 0000000..fc2a547 --- /dev/null +++ b/google-services.json @@ -0,0 +1,40 @@ +{ + "project_info": { + "project_number": "906855209078", + "firebase_url": "https://pdgenie-prod.firebaseio.com", + "project_id": "pdgenie-prod", + "storage_bucket": "pdgenie-prod.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:906855209078:android:ee338aff821e0d8a", + "android_client_info": { + "package_name": "com.sineedge.pdgvendor" + } + }, + "oauth_client": [ + { + "client_id": "906855209078-sb98futmik28cnlpd8urtbg21i223tlj.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBR2ZvqPvV0KzoG_q-iSzgJQXBss6T_VHs" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "906855209078-sb98futmik28cnlpd8urtbg21i223tlj.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/ionic.config.json b/ionic.config.json new file mode 100755 index 0000000..4e23fba --- /dev/null +++ b/ionic.config.json @@ -0,0 +1,7 @@ +{ + "name": "pd_officer_v4", + "integrations": { + "cordova": {} + }, + "type": "angular" +} diff --git a/karma.conf.js b/karma.conf.js new file mode 100755 index 0000000..ffd7c16 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,31 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../coverage'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; diff --git a/package-lock.json b/package-lock.json new file mode 100755 index 0000000..1ad33b1 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,15906 @@ +{ + "name": "vendor_officer", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.801.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.801.3.tgz", + "integrity": "sha512-gg6ZyJMiRYuzzmbpuDszrsE/hpwzoUnlOVoLNNzbACGBSDiqelC1mvGHb9JQM56Sy8gSjZn6RT0K2/Og79GoSg==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.1.3", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular-devkit/build-angular": { + "version": "0.803.25", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.25.tgz", + "integrity": "sha512-WY0E7NgXuog3phhz5ZdutZPWQ9nbOr+omGN5KI1e8MZs1sJO4xkyaGRT8zOulkogkqJ2NboTBq3j9uSbZkcYeg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.25", + "@angular-devkit/build-optimizer": "0.803.25", + "@angular-devkit/build-webpack": "0.803.25", + "@angular-devkit/core": "8.3.25", + "@babel/core": "7.8.3", + "@babel/preset-env": "7.8.3", + "@ngtools/webpack": "8.3.25", + "ajv": "6.10.2", + "autoprefixer": "9.6.1", + "browserslist": "4.8.6", + "cacache": "12.0.2", + "caniuse-lite": "1.0.30001024", + "circular-dependency-plugin": "5.2.0", + "clean-css": "4.2.1", + "copy-webpack-plugin": "5.1.1", + "core-js": "3.6.4", + "coverage-istanbul-loader": "2.0.3", + "file-loader": "4.2.0", + "find-cache-dir": "3.0.0", + "glob": "7.1.4", + "jest-worker": "24.9.0", + "karma-source-map-support": "1.4.0", + "less": "3.9.0", + "less-loader": "5.0.0", + "license-webpack-plugin": "2.1.2", + "loader-utils": "1.2.3", + "mini-css-extract-plugin": "0.8.0", + "minimatch": "3.0.4", + "open": "6.4.0", + "parse5": "4.0.0", + "postcss": "7.0.17", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "3.1.0", + "regenerator-runtime": "0.13.3", + "rxjs": "6.4.0", + "sass": "1.22.9", + "sass-loader": "7.2.0", + "semver": "6.3.0", + "source-map": "0.7.3", + "source-map-loader": "0.2.4", + "source-map-support": "0.5.13", + "speed-measure-webpack-plugin": "1.3.1", + "style-loader": "1.0.0", + "stylus": "0.54.5", + "stylus-loader": "3.0.2", + "terser": "4.6.3", + "terser-webpack-plugin": "1.4.3", + "tree-kill": "1.2.2", + "webpack": "4.39.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.9.0", + "webpack-merge": "4.2.1", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.1.0-rc.6", + "worker-plugin": "3.2.0" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.803.25", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.25.tgz", + "integrity": "sha512-usV/zEncKCKQuF6AD3pRU6N5i5fbaAux/qZb+nbOz9/2G5jrXwe5sH+y3vxbgqB83e3LqusEQCTu7/tfg6LwZg==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.25", + "rxjs": "6.4.0" + } + }, + "@angular-devkit/core": { + "version": "8.3.25", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.25.tgz", + "integrity": "sha512-l7Gqy1tMrTpRmPVlovcFX8UA3mtXRlgO8kcSsbJ9MKRKNTCcxlfsWEYY5igyDBUVh6ADkgSIu0nuk31ZGTe0lw==", + "dev": true, + "requires": { + "ajv": "6.10.2", + "fast-json-stable-stringify": "2.0.0", + "magic-string": "0.25.3", + "rxjs": "6.4.0", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "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" + } + }, + "cacache": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.2.tgz", + "integrity": "sha512-ifKgxH2CKhJEg6tNdAwziu6Q33EvuG26tYcda6PT3WKisZcYDXsnEdnRv67Po3yCzFfaSoMjGZzJyD2c3DT1dg==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "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.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "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 + } + } + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.803.25", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.25.tgz", + "integrity": "sha512-MiQimuEs8QeM3xo7bR3Yk1OWHHlp2pGCc2GLUMIcWhKqM+QjoRky0HoGoBazbznx292l+xjFjANvPEKbqJ2v7Q==", + "dev": true, + "requires": { + "loader-utils": "1.2.3", + "source-map": "0.7.3", + "tslib": "1.10.0", + "typescript": "3.5.3", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "typescript": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", + "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.803.25", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.25.tgz", + "integrity": "sha512-WR7HWJIWL6TB3WHG7ZFn8s0z3WlojeQlod75UIKl5i+f4OU90kp8kxcoH5G6OCXu56x5w40oIi1ve5ljjWSJkw==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.803.25", + "@angular-devkit/core": "8.3.25", + "rxjs": "6.4.0" + }, + "dependencies": { + "@angular-devkit/architect": { + "version": "0.803.25", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.25.tgz", + "integrity": "sha512-usV/zEncKCKQuF6AD3pRU6N5i5fbaAux/qZb+nbOz9/2G5jrXwe5sH+y3vxbgqB83e3LqusEQCTu7/tfg6LwZg==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.25", + "rxjs": "6.4.0" + } + }, + "@angular-devkit/core": { + "version": "8.3.25", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.25.tgz", + "integrity": "sha512-l7Gqy1tMrTpRmPVlovcFX8UA3mtXRlgO8kcSsbJ9MKRKNTCcxlfsWEYY5igyDBUVh6ADkgSIu0nuk31ZGTe0lw==", + "dev": true, + "requires": { + "ajv": "6.10.2", + "fast-json-stable-stringify": "2.0.0", + "magic-string": "0.25.3", + "rxjs": "6.4.0", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "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" + } + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular-devkit/core": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.1.3.tgz", + "integrity": "sha512-Vj5fowuz27J+S74U1+MrSrJ7vI+OZC5HBOp4m7rrh/GcYlujcX3BUu0Bxi7LI1v90yDsr0s/iEAKsff05ByXiw==", + "dev": true, + "requires": { + "ajv": "6.10.0", + "fast-json-stable-stringify": "2.0.0", + "magic-string": "0.25.3", + "rxjs": "6.4.0", + "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular-devkit/schematics": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.1.3.tgz", + "integrity": "sha512-nz3b0uXu3w3PPLq4D+ersjeX/AyW3Amq7UwXa8lZFoJ0oc8cPjXW+h4D56rNw2GbOGZX7aaNe/Cxd9SBt0wF2A==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.1.3", + "rxjs": "6.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@angular/animations": { + "version": "8.2.14", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-8.2.14.tgz", + "integrity": "sha512-3Vc9TnNpKdtvKIXcWDFINSsnwgEMiDmLzjceWg1iYKwpeZGQahUXPoesLwQazBMmxJzQiA4HOMj0TTXKZ+Jzkg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/cdk": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-8.2.3.tgz", + "integrity": "sha512-ZwO5Sn720RA2YvBqud0JAHkZXjmjxM0yNzCO8RVtRE9i8Gl26Wk0j0nQeJkVm4zwv2QO8MwbKUKGTMt8evsokA==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^1.7.1" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + } + } + }, + "@angular/cli": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.1.3.tgz", + "integrity": "sha512-8BuN+UW1etRGS2U8rnxLagcA/zCxAmrtH6cB943CecPkr3p9+VUlVXtrRU8lkQE/wdrGmJjS5qkG9TybTIPRwg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.801.3", + "@angular-devkit/core": "8.1.3", + "@angular-devkit/schematics": "8.1.3", + "@schematics/angular": "8.1.3", + "@schematics/update": "0.801.3", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.0", + "debug": "^4.1.1", + "ini": "1.3.5", + "inquirer": "6.4.1", + "npm-package-arg": "6.1.0", + "open": "6.4.0", + "pacote": "9.5.1", + "read-package-tree": "5.3.1", + "semver": "6.2.0", + "symbol-observable": "1.2.0", + "universal-analytics": "^0.4.20", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.0.tgz", + "integrity": "sha512-3NkLpm6I6kEgC8J0I9EZ0fouXc/mm5J9zqJFCgA2jGqmsL0O64I7Uvi3AmUMnnRqc6u7uLgVVnY4pyBQ03nCiw==", + "dev": true + }, + "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.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@angular/common": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-8.1.3.tgz", + "integrity": "sha512-AnTlYV+Y3HYjJsAIt2AkIJ63qphvu9RNIJSZS61zQ4YBty29aslAJ/jh3PSWD0Yj9UT/AgzquJhfhhNEuImDRw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-8.1.3.tgz", + "integrity": "sha512-mKeRkpPy/iBPGBCVQIPF9x4f1S68ilEYaQTTfHoLR0OfivEQsyGuf2GEegwbTosEBX3JF+0JHfCNvsAE1zI5Og==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/compiler-cli": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-8.1.3.tgz", + "integrity": "sha512-rzlKU/xo6AzSPBLnJ/jeSwgojn/MaByTaGFG4THLRUizfGPqAsmppQ12Nmqr9faIiuG0k/izGSoWmppCJEK8FA==", + "dev": true, + "requires": { + "canonical-path": "1.0.0", + "chokidar": "^2.1.1", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "source-map": "^0.6.1", + "tslib": "^1.9.0", + "yargs": "13.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "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 + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yargs": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", + "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "@angular/core": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-8.1.3.tgz", + "integrity": "sha512-45ocymDkXhmgluhaIX/O6IgqGPCLOlSYEXYpJ660QS1JgprKU7Ae9mWiNSmbBmT0OGV/sKKF8SNMQAGOHgio6Q==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/forms": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-8.1.3.tgz", + "integrity": "sha512-NabNiUsR1XgrI1/T8hFwbTH0BMqhKd1riSTU+xyJ3qVbdmORq1xnf6/dLbljNGxViMU28P8hBXvyf1BoTS+HyQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/language-service": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-8.1.3.tgz", + "integrity": "sha512-9s2LWlRlBhUXZ0oWh5ojYKnQgXgYH/VifEXteRWmEJ0dlwDApgw5Jk6usstDhv09XQvLdoumMQwOXf07zjcJrQ==", + "dev": true + }, + "@angular/material": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-8.2.3.tgz", + "integrity": "sha512-SOczkIaqes+r+9XF/UUiokidfFKBpHkOPIaFK857sFD0FBNPvPEpOr5oHKCG3feERRwAFqHS7Wo2ohVEWypb5A==", + "requires": { + "tslib": "^1.7.1" + } + }, + "@angular/platform-browser": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-8.1.3.tgz", + "integrity": "sha512-ihjoJd3OCmn/LBpYEDeCYnYJ1JRzeY6xYySNBEHNHLc07FX0TTiNwiZJHjbKoxdjr7qe6cj6gpT51M77pRlKKw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-8.1.3.tgz", + "integrity": "sha512-tsZWp8aFZNvbJ1TgP75GEfrwLe4SFW02kzEF12o7XlGU/iwnMjEs356rGHeueJZuWMFGS8PLL4mqPic7R5p53Q==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@angular/router": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-8.1.3.tgz", + "integrity": "sha512-MOalKqqWcTaosHLNE5nmk5rsLRp3jE1PobGaFtbUJKTTZW0vS4rcr6iiRg2bZRv/srGixDXvNLenvYjTpzzTdw==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/compat-data": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.5.tgz", + "integrity": "sha512-jWYUqQX/ObOhG1UiEkbH5SANsE/8oKXiQWjj7p7xgj9Zmnt//aUvyz4dBkK0HNsS8/cbyC5NmmH87VekW+mXFg==", + "dev": true, + "requires": { + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/core": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", + "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helpers": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "json5": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", + "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", + "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", + "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-call-delegate": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz", + "integrity": "sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.4.tgz", + "integrity": "sha512-3k3BsKMvPp5bjxgMdrFyq0UaEO48HciVrOVF0+lon8pp95cyJ2ujAh0TrBHNMnJGT2rr0iKOJPFFbSqjDyf/Pg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.4", + "browserslist": "^4.8.5", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.3.tgz", + "integrity": "sha512-Gcsm1OHCUr9o9TcJln57xhWHtdXbA2pgQ58S0Lxlks0WMGNXuki4+GLfX0p+L2ZkINUGZvfkz8rzoqJQSthI+Q==", + "dev": true, + "requires": { + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.6.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", + "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", + "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==", + "dev": true + }, + "regjsparser": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.3.tgz", + "integrity": "sha512-8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/helper-define-map": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", + "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", + "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", + "dev": true, + "requires": { + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.7.4.tgz", + "integrity": "sha512-AnkGIdiBhEuiwdoMnKm7jfPfqItZhgRaZfMg1XX3bS25INOnLPjPG1Ppnajh8eqgt5kPJnfqrRHqFqmjKDZLzQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.7.4", + "@babel/template": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.4.tgz", + "integrity": "sha512-QTGKEdCkjgzgfJ3bAyRwF4yyT3pg+vDgan8DSivq1eS0gwi+KGKE5x8kRcbeFTb/673mkO5SN1IZfmCfA5o+EA==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", + "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", + "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-imports": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", + "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-module-transforms": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz", + "integrity": "sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", + "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/helper-plugin-utils": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", + "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", + "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-replace-supers": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.3.tgz", + "integrity": "sha512-xOUssL6ho41U81etpLoT2RTdvdus4VfHamCuAm4AHxGr+0it5fnwoVdwUJ7GFEqCsQYzJUhcbsN9wB9apcYKFA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-simple-access": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", + "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + } + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.4.tgz", + "integrity": "sha512-guAg1SXFcVr04Guk9eq0S4/rWS++sbmyqosJzVs8+1fH5NI+ZcmkaSkc7dmtAFbHFva6yRJnjW3yAcGxjueDug==", + "dev": true, + "requires": { + "@babel/types": "^7.7.4" + } + }, + "@babel/helper-wrap-function": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", + "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helpers": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz", + "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==", + "dev": true, + "requires": { + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.4", + "@babel/types": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/generator": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.4.tgz", + "integrity": "sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/traverse": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.4.tgz", + "integrity": "sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.4", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.4", + "@babel/types": "^7.8.3", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "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" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + } + } + }, + "@babel/parser": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.7.tgz", + "integrity": "sha512-WtTZMZAZLbeymhkd/sEaPD8IQyGAhmuTuvTzLiCFM7iXiVdY0gc0IaI+cW0fh1BnSMbJSzXX6/fHllgHKwHhXw==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", + "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", + "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", + "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz", + "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz", + "integrity": "sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", + "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", + "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", + "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", + "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", + "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz", + "integrity": "sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", + "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz", + "integrity": "sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", + "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", + "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", + "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.4.tgz", + "integrity": "sha512-iAXNlOWvcYUYoV8YIxwS7TxGRJcxyl8eQCfT+A5j8sKUzRFvJdcyjp97jL2IghWSRDaL2PU2O2tX8Cu9dTBq5A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", + "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", + "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.8.3" + } + }, + "@babel/helper-function-name": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/highlight": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz", + "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.4.tgz", + "integrity": "sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==", + "dev": true + }, + "@babel/template": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + } + } + }, + "@babel/plugin-transform-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", + "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", + "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz", + "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz", + "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz", + "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz", + "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", + "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", + "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", + "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.4.tgz", + "integrity": "sha512-IsS3oTxeTsZlE5KqzTbcC2sV0P9pXdec53SU+Yxv7o/6dvGM5AkTotQKhoSffhNgZ/dftsSiOoxy7evCYJXzVA==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.8.3", + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + }, + "dependencies": { + "@babel/helper-get-function-arity": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", + "dev": true, + "requires": { + "@babel/types": "^7.8.3" + } + }, + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", + "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz", + "integrity": "sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", + "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", + "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", + "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", + "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", + "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", + "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", + "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.3.tgz", + "integrity": "sha512-Rs4RPL2KjSLSE2mWAx5/iCH+GC1ikKdxPrhnRS6PfFVaiZeom22VFKN4X8ZthyN61kAaR05tfXTbCvatl9WIQg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.8.0", + "@babel/helper-compilation-targets": "^7.8.3", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.8.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.8.3", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.8.3", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.8.3", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.8.3", + "@babel/plugin-transform-modules-systemjs": "^7.8.3", + "@babel/plugin-transform-modules-umd": "^7.8.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.3", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.3", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.3", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/types": "^7.8.3", + "browserslist": "^4.8.2", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.0", + "semver": "^5.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.7.4.tgz", + "integrity": "sha512-qUzihgVPguAzXCK7WXw8pqs6cEwi54s3E+HrejlkuWO6ivMKx9hZl3Y2fSXp9i5HgyWmj7RKP+ulaYnKM4yYxw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4" + } + }, + "@babel/traverse": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.7.4.tgz", + "integrity": "sha512-P1L58hQyupn8+ezVA2z5KBm4/Zr4lCC8dwKCMYzsa5jFMDMQAzaBNy9W5VjB+KAmBjb40U7a/H6ao+Xo+9saIw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.7.4", + "@babel/helper-function-name": "^7.7.4", + "@babel/helper-split-export-declaration": "^7.7.4", + "@babel/parser": "^7.7.4", + "@babel/types": "^7.7.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + }, + "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" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.7.4.tgz", + "integrity": "sha512-cz5Ji23KCi4T+YIE/BolWosrJuSmoZeN1EFnRtBwF+KKLi8GG/Z2c2hOJJeCXPk4mwk4QFvTmwIodJowXgttRA==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + } + } + }, + "@ionic-native/android-permissions": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/android-permissions/-/android-permissions-5.22.0.tgz", + "integrity": "sha512-M4B513lCB5ZqBX+a7NK8VbvJOOjzEoaqv8LfHxIapYUckcDXcnDJUEowYbdESami9IZech4DLgADVHqgK2GZHQ==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/app-version": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/app-version/-/app-version-5.22.0.tgz", + "integrity": "sha512-pAMEozAvZVIrrkrsC7KWpEHISqfeO8Yc0Qzyf0IhwVsVzJeAJdK0q49fzdk029xd3qxoHCQB933FoRdy02Vv2g==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/background-geolocation": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/background-geolocation/-/background-geolocation-5.22.0.tgz", + "integrity": "sha512-WApqfICvMV20rii+nv/lhAC6DoCBfcfnMtc+IFc24w4bKONBtw+ZolNKuiObQAuTLvzu+u06yNoE8QO+KduTIA==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/camera": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/camera/-/camera-5.22.0.tgz", + "integrity": "sha512-EhRYs9yU0Qq6azUSwTbw9C0WkMlfsFL0nFowx8wzhJTohecpz340WtrAMTdpP3c9ACbVjEHpqoC9XdfaPylO9Q==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/core": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.22.0.tgz", + "integrity": "sha512-zX4EUDDDkCBtZVmu00V+SVbpuqDGhxe0Fri75neAjsG1oHvP3l470EOGHJgLW5edJtIcStlqvDE49RUcwT4mlA==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/diagnostic": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/diagnostic/-/diagnostic-5.22.0.tgz", + "integrity": "sha512-QlgdQzaQZqrUFM7hXZl7RtrMcfXZV7ZszU6PwZTPfqRP31rlk2TuChWcT8Z8+wHUhlVkGR1r9VIDmrLJZ7Bwfw==", + "requires": { + "@types/cordova": "^0.0.34" + }, + "dependencies": { + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + } + } + }, + "@ionic-native/document-scanner": { + "version": "5.28.0", + "resolved": "https://registry.npmjs.org/@ionic-native/document-scanner/-/document-scanner-5.28.0.tgz", + "integrity": "sha512-pduvyOJNGu0CG74O2AJ791RbmK/ldPSkZUtDcOWkHHCjbs82FgZlkWSKgLzlfZkCmiM0o23LfWDz6zlAMK/47Q==", + "requires": { + "@types/cordova": "^0.0.34" + }, + "dependencies": { + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + } + } + }, + "@ionic-native/file": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/file/-/file-5.22.0.tgz", + "integrity": "sha512-D9P+SvqQywb2/s06No5IYCkCWWyTqCBUAVT3x2zsHOLiqzldw04VUxReigUbos/b8T/D3QoTc5AzNidBIcWvDg==", + "requires": { + "@types/cordova": "^0.0.34" + }, + "dependencies": { + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + } + } + }, + "@ionic-native/fingerprint-aio": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/fingerprint-aio/-/fingerprint-aio-5.22.0.tgz", + "integrity": "sha512-qg9I2diyGKej15/vcbV2zQA0/7AALkWeVcoMgMlS58+aHdvbYXfL1VvgV+mWlw06DovqCKjNHRBDrjMGUI4+Zg==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/geolocation": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/geolocation/-/geolocation-5.22.0.tgz", + "integrity": "sha512-eQi/YVi0CmKNSuMuO4rPePOUlXsSfYcuc86WQdMbxNI7JCHFtnKNy/CbhLdnZxHTqPu4Me62XY0s6ypRdNBLdQ==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/launch-navigator": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/launch-navigator/-/launch-navigator-5.22.0.tgz", + "integrity": "sha512-px69g8ot5/7xLdmnFyqmTR531hClr9Ibp8lZ9cITt3pvu7LpC1uaW5y+V+HhMVqdrG3cWkKhllRXD3NGiPZajQ==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/location-accuracy": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/location-accuracy/-/location-accuracy-5.22.0.tgz", + "integrity": "sha512-i6Y6aO7gUyP1H0TA82tiys9cdILouTIVmeuy+/v7fxXSgMi//yuI/yk+R2CJKqHkLNBFKODw91/ZxLQSNyauhw==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/market": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/market/-/market-5.22.0.tgz", + "integrity": "sha512-y+QaexEBbMVlqsKPr1KHdP/ecnKl8XnVNtkEFZBOcPHUvMybkmqxYG1dg51wVRoxdYpx8IhKUYheRPDLWboymQ==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/push": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/push/-/push-5.22.0.tgz", + "integrity": "sha512-zDximkfihSK9baQ95/2IcleM4Efbinjy46MrmE8VK5yanCTlmMeEaRUwaBPiJcErMI/al8ld7f9MQGgOOwRSLA==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/splash-screen": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.22.0.tgz", + "integrity": "sha512-cJC93eCsxYAhC9kn4GMA09pbCcpihiKXhMedelkUpeeBa2w0QBG0RiCIUFQ8G4G963vT991gxzwQO625xoCekQ==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/sqlite": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/sqlite/-/sqlite-5.22.0.tgz", + "integrity": "sha512-ZGfXzfToGeueyWIVcAxdCWACle06jtdvrIUyOXf80n97Bg6iXFtYIKCHVUMabZx9M3SfkY7yW/VjvD97FwkVTA==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic-native/status-bar": { + "version": "5.22.0", + "resolved": "https://registry.npmjs.org/@ionic-native/status-bar/-/status-bar-5.22.0.tgz", + "integrity": "sha512-CVb/HjNZdYMmUHK/H2q1uo6uIt+KOG/NnOgn4jUNTiw5XiGWvT+hqrMNTBrRk1nG573ky5OhW0f0oe+GqWaxOg==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, + "@ionic/angular": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-5.2.1.tgz", + "integrity": "sha512-CdtGMafw0J45uY3hxv4A5hfWOBlK2xvbCl+4hVCYhkk8r4PDJZuuSX+TW4+jSuV4qzvCgzsXaWO14QFWvRYddQ==", + "requires": { + "@ionic/core": "5.2.1", + "tslib": "^1.9.3" + } + }, + "@ionic/angular-toolkit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ionic/angular-toolkit/-/angular-toolkit-2.2.0.tgz", + "integrity": "sha512-sT3GokCa5CVrtLsijcTWEm5tbUB3CcJ1ucC9NlIcAZG+dh3oQ7zK2gS7U3xdbSR1cNO+y2TBVNVyY0xSiI+Rbg==", + "dev": true, + "requires": { + "@schematics/angular": ">=8.0.0", + "cheerio": "1.0.0-rc.3", + "colorette": "1.1.0", + "copy-webpack-plugin": "5.1.1", + "tslib": "^1.9.0", + "ws": "^7.0.1" + }, + "dependencies": { + "ws": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", + "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==", + "dev": true + } + } + }, + "@ionic/core": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.2.1.tgz", + "integrity": "sha512-jgNTAAMDXgPOi+1PBVh02rXeyC9loTSii4YETqc79y8u+gIcR094q2ragQf1rbhVa5dkTZaXmnhdRVVYbzaILA==", + "requires": { + "ionicons": "^5.0.1", + "tslib": "^1.10.0" + } + }, + "@ionic/storage": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ionic/storage/-/storage-2.2.0.tgz", + "integrity": "sha512-2pszrzmI+fAar2Rx0WmJDVpc15D1k5tvLkB49NLYWJ2pOMaO/3/vp7mg/mEbg3rdsPE9FRbYI6vdKjQ2pP1EWA==", + "requires": { + "localforage": "1.7.1", + "localforage-cordovasqlitedriver": "1.7.0", + "tslib": "^1.7.1" + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@netbasal/content-loader": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@netbasal/content-loader/-/content-loader-1.1.0.tgz", + "integrity": "sha512-xzDuM4DWNu+xaTu8FiTUOoOAOHn/ryDyeagzW+3E1bG11pxmXqj9tjyWqx6SE9fH38J90RC5ozZF7LCf0fZDkQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "@netflix/nerror": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", + "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", + "requires": { + "assert-plus": "^1.0.0", + "extsprintf": "^1.4.0", + "lodash": "^4.17.15" + }, + "dependencies": { + "extsprintf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", + "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=" + } + } + }, + "@ngtools/webpack": { + "version": "8.3.25", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.25.tgz", + "integrity": "sha512-yHvgxXUXlgdWijtzcRjTaUqzK+6TVK/8p7PreBR00GsLxhl4U1jQSC6yDaZUCjOaEkiczFWl4hEuC4wTU/hLdg==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.3.25", + "enhanced-resolve": "4.1.0", + "rxjs": "6.4.0", + "tree-kill": "1.2.2", + "webpack-sources": "1.4.3" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "8.3.25", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.25.tgz", + "integrity": "sha512-l7Gqy1tMrTpRmPVlovcFX8UA3mtXRlgO8kcSsbJ9MKRKNTCcxlfsWEYY5igyDBUVh6ADkgSIu0nuk31ZGTe0lw==", + "dev": true, + "requires": { + "ajv": "6.10.2", + "fast-json-stable-stringify": "2.0.0", + "magic-string": "0.25.3", + "rxjs": "6.4.0", + "source-map": "0.7.3" + } + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "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" + } + }, + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@schematics/angular": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.1.3.tgz", + "integrity": "sha512-DsR/LDC7Vifw78pDew4HhUYvhKM5gyY8muvJqqfAU9DLq4yZ5ixus7jpqWXNeL3ZalFcH1/yQW20nzLQiLETkA==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.1.3", + "@angular-devkit/schematics": "8.1.3" + } + }, + "@schematics/update": { + "version": "0.801.3", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.801.3.tgz", + "integrity": "sha512-Y4HlG1eMUMlu62Kw2ic1+hF9+kKJlP35o+DO4t2LHKe/Kw+P+HJUeEpr/jocUxV56LDxF43BT3hkc9yJGIQ/Yw==", + "dev": true, + "requires": { + "@angular-devkit/core": "8.1.3", + "@angular-devkit/schematics": "8.1.3", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "pacote": "9.5.1", + "rxjs": "6.4.0", + "semver": "6.2.0", + "semver-intersect": "1.4.0" + }, + "dependencies": { + "rxjs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz", + "integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.3.16.tgz", + "integrity": "sha512-Nveep4zKGby8uIvG2AEUyYOwZS8uVeHK9TgbuWYSawUDDdIgfhCKz28QzamTo//Jk7Ztt9PO3f+vzlB6a4GV1Q==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "8.9.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", + "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "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.6", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.6.tgz", + "integrity": "sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ==", + "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.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "adm-zip": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.14.tgz", + "integrity": "sha512-/9aQCnQHF+0IiCl0qhXoK7qs//SwYE7zX8lsr/DNk1BRAHYxeLZPL4pguwK29gUEqasYQjqPtEpDRSWEkdHn9g==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "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" + } + }, + "ajv-errors": { + "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.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true + }, + "amazon-cognito-identity-js": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-3.2.5.tgz", + "integrity": "sha512-DIJM6Spo4YErBxhCqCuQNVWwHG2XBE57Cvrt97L4mSziCTq612E9jerBxEb2+Iy/xjFZpL4Yzqxe+j3rJmBWEQ==", + "requires": { + "buffer": "4.9.1", + "crypto-js": "3.1.9-1", + "js-cookie": "^2.1.4" + }, + "dependencies": { + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + } + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "android-versions": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.5.0.tgz", + "integrity": "sha512-/GWUAqa2OJNlDF5VGSe3SR1QMHEPXxx54Ur56r0qQC0H9FlBr7kyBF2SgVEhzFCPbrW4UcYgVuWrq/2Ty3QvXg==", + "requires": { + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "ansi": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", + "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", + "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", + "dev": true + }, + "append-transform": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", + "dev": true, + "requires": { + "default-require-extensions": "^2.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "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": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", + "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", + "dev": true, + "requires": { + "browserslist": "^4.6.3", + "caniuse-lite": "^1.0.30000980", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.17", + "postcss-value-parser": "^4.0.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.0.tgz", + "integrity": "sha512-Uvq6hVe90D0B2WEnUqtdgY1bATGz3mw33nH9Y+dmA+w5DHvUmBgkr5rM/KCHpCsiFNRUfokW/szpPPgMK2hm4A==", + "dev": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.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 + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + }, + "big.js": { + "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": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "bplist-creator": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.0.8.tgz", + "integrity": "sha512-Za9JKzD6fjLC16oX2wsXfc+qBEhJBJB1YPInoAQpMLhDuj5aVOv1baGeIQSq1Fr3OCqzvsoQcSBSwGId/Ja2PA==", + "requires": { + "stream-buffers": "~2.2.0" + } + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "requires": { + "big-integer": "^1.6.44" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.8.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz", + "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001023", + "electron-to-chromium": "^1.3.341", + "node-releases": "^1.1.47" + } + }, + "browserstack": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz", + "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "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.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001024", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001024.tgz", + "integrity": "sha512-LubRSEPpOlKlhZw9wGlLHo8ZVj6ugGU3xGUfLPneNBledSd9lIM5cCGZ9Mz/mMCJUhEt4jZpYteZNVRdJw5FRA==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "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" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + }, + "dependencies": { + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "requires": { + "@types/node": "*" + } + } + } + }, + "chokidar": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", + "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz", + "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chownr": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", + "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "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 + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.1.tgz", + "integrity": "sha512-awBZXFcJUyC5HMYXiHzjr3D24tww2l1D1OqtfA9vUhEtYr32a65A+Gblm/OvsO+HuKLYzn8EDMw1inSM3VbxWA==", + "dev": true, + "requires": { + "app-root-path": "^2.2.1", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colorette": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz", + "integrity": "sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg==", + "dev": true + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "compare-versions": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz", + "integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", + "dev": true + } + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "connect-history-api-fallback": { + "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": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz", + "integrity": "sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==", + "dev": true, + "requires": { + "cacache": "^12.0.3", + "find-cache-dir": "^2.1.0", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "is-glob": "^4.0.1", + "loader-utils": "^1.2.3", + "minimatch": "^3.0.4", + "normalize-path": "^3.0.0", + "p-limit": "^2.2.1", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "cacache": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "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.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + } + } + }, + "cordova-android": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.0.0.tgz", + "integrity": "sha512-2ZEgApK4LPMYW0zh/mLAH3CabzCaKE0yxQTzA2wTf0Eo2HHTJnRtDCf9spGf3nPOkubyXS6+pvzz5QzNHpVTqQ==", + "requires": { + "android-versions": "^1.5.0", + "cordova-common": "^4.0.1", + "execa": "^4.0.2", + "fs-extra": "^9.0.1", + "nopt": "^4.0.3", + "properties-parser": "^0.3.1", + "which": "^2.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "cordova-common": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz", + "integrity": "sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==", + "requires": { + "@netflix/nerror": "^1.1.3", + "ansi": "^0.3.1", + "bplist-parser": "^0.2.0", + "cross-spawn": "^7.0.1", + "elementtree": "^0.1.7", + "endent": "^1.4.1", + "fast-glob": "^3.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "plist": "^3.0.1", + "q": "^1.5.1", + "read-chunk": "^3.2.0", + "strip-bom": "^4.0.0", + "underscore": "^1.9.2" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "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" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "cordova-plugin-actionsheet": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-actionsheet/-/cordova-plugin-actionsheet-2.3.3.tgz", + "integrity": "sha1-6SYbLQBKjaQHOI1g31NMFWxS/xE=" + }, + "cordova-plugin-add-swift-support": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-add-swift-support/-/cordova-plugin-add-swift-support-2.0.2.tgz", + "integrity": "sha512-K03WDnsD3GT+n7Od3BnS17D8rYnAFZbZjjQJa2r7qW8QLq8+h7hGbFaiF+w5+nUtyAqUNq+HT/d/MdqBGLNzxA==", + "requires": { + "glob": "^7.1.3", + "semver": "^6.0.0", + "xcode": "^2.0.0" + } + }, + "cordova-plugin-android-permissions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-android-permissions/-/cordova-plugin-android-permissions-1.0.2.tgz", + "integrity": "sha512-Eb7Cf3lk9RydSYqmUzBAEVTT/EU+opV2yvyqkgZZAB/RVfHxsla/1wzHq0PBwAFjHIrxBAGZrOpJFVKc1SxtuA==" + }, + "cordova-plugin-app-version": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cordova-plugin-app-version/-/cordova-plugin-app-version-0.1.9.tgz", + "integrity": "sha1-nbBgeGMzenEEiTAuX1CpBPFEm9s=" + }, + "cordova-plugin-camera": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-camera/-/cordova-plugin-camera-4.1.0.tgz", + "integrity": "sha512-fCLhWjWYn49q3X5xaypAPgTz6MAWSKFFQvD2Gpi5SuVlrRPRphtX2jIqR2zCBuDTBR082QVnlc+yUDXt65Mjgw==" + }, + "cordova-plugin-device": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.3.tgz", + "integrity": "sha512-Jb3V72btxf3XHpkPQsGdyc8N6tVBYn1vsxSFj43fIz9vonJDUThYPCJJHqk6PX6N4dJw6I4FjxkpfCR4LDYMlw==" + }, + "cordova-plugin-dialogs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-dialogs/-/cordova-plugin-dialogs-2.0.2.tgz", + "integrity": "sha512-FUHI6eEVeoz2VkxbF0P56QlUQLGzXcvw3i4xuXyM9gEct6Y+FA3Xzgl2pJTZcTg5wRqLWzN08kgNoHPkom15pw==" + }, + "cordova-plugin-document-scanner": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-document-scanner/-/cordova-plugin-document-scanner-4.2.3.tgz", + "integrity": "sha512-4aW0Aj/6BPWGC9biIf26ti8wqIZMVyeN97LCbxfprCcSw9ccUDDCJe/u/C2XhKUUtZfTNBOQl3lVaeW1DnkuWw==" + }, + "cordova-plugin-file": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-6.0.2.tgz", + "integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA==" + }, + "cordova-plugin-fingerprint-aio": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cordova-plugin-fingerprint-aio/-/cordova-plugin-fingerprint-aio-3.0.1.tgz", + "integrity": "sha512-Sgbv8Ykk74Ov1foEZg77owIqmHZoGktsv41rmW8KAAMf2JE93AawvQdUCYYROnk+ozG3D9ItELa5yhYU8i7Zhw==", + "requires": { + "cordova-plugin-add-swift-support": "^2.0.2" + } + }, + "cordova-plugin-geolocation": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-geolocation/-/cordova-plugin-geolocation-4.0.2.tgz", + "integrity": "sha512-QGThnPKzPxESHkruZlpE0+5aFBVOet8al0vIJ7laSUOQHIC1dd/JY6peVIbtLboKi5Dap1wCKRubOqPqH8xcQA==" + }, + "cordova-plugin-ionic-keyboard": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.0.tgz", + "integrity": "sha512-yDUG+9ieKVRitq5mGlNxjaZh/MgEhFFIgTIPhqSbUaQ8UuZbawy5mhJAVClqY97q8/rcQtL6dCDa7x2sEtCLcA==" + }, + "cordova-plugin-ionic-webview": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-4.1.3.tgz", + "integrity": "sha512-hlrUF0kLjjEkZmpYlLJO0NnXmVjMmQ3MOZVXm1ytDihLPKHklYCOpCvjA5Wz3hJrPD1shFEsqi/SPnp873AsdQ==" + }, + "cordova-plugin-market": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-market/-/cordova-plugin-market-1.2.0.tgz", + "integrity": "sha1-YeNkKBR+lUAsZOr4bjFzeP/bJ08=" + }, + "cordova-plugin-mauron85-background-geolocation": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cordova-plugin-mauron85-background-geolocation/-/cordova-plugin-mauron85-background-geolocation-3.0.1.tgz", + "integrity": "sha512-TH5V9ktKimFw6zmp9HBonvDAqxMBqYXzo7ZD+DFXpc2yw8wh26XfkbximXy+KfE0xkzvPbGzshGtX/wKzWQHfQ==" + }, + "cordova-plugin-request-location-accuracy": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-request-location-accuracy/-/cordova-plugin-request-location-accuracy-2.3.0.tgz", + "integrity": "sha512-Rgr3DnRC8PUQyxmsOs76KxvDJB28MoCoYFfceiGn9Nzwsg6nAJmAwEtrYzm283x1cDhBPvzkZ6lzuldTkmnWjA==" + }, + "cordova-plugin-splashscreen": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-5.0.3.tgz", + "integrity": "sha512-rnoDXMDfzoeHDBvsnu6JmzDE/pV5YJCAfc5hYX/Mb2BIXGgSjFJheByt0tU6kp3Wl40tSyFX4pYfBwFblBGyRg==" + }, + "cordova-plugin-statusbar": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-statusbar/-/cordova-plugin-statusbar-2.4.3.tgz", + "integrity": "sha512-ThmXzl6QIKWFXf4wWw7Q/zpB+VKkz3VM958+5A0sXD4jmR++u7KnGttLksXshVwWr6lvGwUebLYtIyXwS4Ovcg==" + }, + "cordova-plugin-whitelist": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.4.tgz", + "integrity": "sha512-EYC5eQFVkoYXq39l7tYKE6lEjHJ04mvTmKXxGL7quHLdFPfJMNzru/UYpn92AOfpl3PQaZmou78C7EgmFOwFQQ==" + }, + "cordova-sqlite-storage": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cordova-sqlite-storage/-/cordova-sqlite-storage-4.0.0.tgz", + "integrity": "sha512-/n5KT3TyRAC7QRe9A4Sn7bMpdsBJ6aMmHat2PsMxFZBot45SOxbAEgfGmXtq0e7OEdVzk573sIn42bLS6lNLjQ==", + "requires": { + "cordova-sqlite-storage-dependencies": "2.1.1" + } + }, + "cordova-sqlite-storage-dependencies": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cordova-sqlite-storage-dependencies/-/cordova-sqlite-storage-dependencies-2.1.1.tgz", + "integrity": "sha512-1lV5Pg1FttjBmGO8z4gxtuA4BbPKtgTfUEh1Vx4boa41inizyxaowRyTeaaqEhi5gmYAaX8sRTABm9U/XckRFg==" + }, + "cordova-support-google-services": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/cordova-support-google-services/-/cordova-support-google-services-1.3.2.tgz", + "integrity": "sha512-RtEWzULreUX662MFWopGhFispLiHX7gUf2GijPOC2mY2oCNuUobj2mO4tl5q7PYbOreSxq+PrSekhmS6TAAWdw==" + }, + "cordova.plugins.diagnostic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/cordova.plugins.diagnostic/-/cordova.plugins.diagnostic-5.0.1.tgz", + "integrity": "sha512-nuHDm0EQZcoz1DIFLG7/cdxhFL2LHVi9hWZ+gLNO5GsMSvjMh1PRGuoBjOjvBjsqTFlYbWEetu1/tgZ/29qbfg==", + "requires": { + "colors": "^1.1.2", + "elementtree": "^0.1.6", + "minimist": "1.2.0" + } + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" + }, + "core-js-compat": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", + "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", + "dev": true, + "requires": { + "browserslist": "^4.8.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "coverage-istanbul-loader": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz", + "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.0", + "loader-utils": "^1.2.3", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.6.1" + }, + "dependencies": { + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "schema-utils": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "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" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-js": { + "version": "3.1.9-1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.9-1.tgz", + "integrity": "sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg=" + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "damerau-levenshtein": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz", + "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "default-require-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "dev": true, + "requires": { + "strip-bom": "^3.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "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": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.354", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.354.tgz", + "integrity": "sha512-24YMkNiZWOUeF6YeoscWfIGP0oMx+lJpU/miwI+lcu7plIDpyZn8Gx0lx0qTDlzGoz7hx+lpyD8QkbkX5L2Pqw==", + "dev": true + }, + "elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", + "requires": { + "sax": "1.1.4" + }, + "dependencies": { + "sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" + } + } + }, + "elliptic": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "endent": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", + "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", + "requires": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.4" + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", + "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", + "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", + "dev": true + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", + "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", + "dev": true + }, + "eventsource": { + "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": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "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" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "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 + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + } + } + }, + "fast-json-parse": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==" + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", + "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.0" + }, + "dependencies": { + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "schema-utils": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", + "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.0", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", + "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", + "dev": true, + "requires": { + "debug": "^3.0.0" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", + "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-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" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" + }, + "handle-thing": { + "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": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", + "dev": true, + "requires": { + "neo-async": "^2.6.0", + "optimist": "^0.6.1", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4" + }, + "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 + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "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", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", + "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.4.1.tgz", + "integrity": "sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "install": { + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/install/-/install-0.8.9.tgz", + "integrity": "sha1-n0tcDRhR74cunfheT3Fi1OXc2+0=" + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true + }, + "ionic-cache": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ionic-cache/-/ionic-cache-4.1.0.tgz", + "integrity": "sha512-0/jsoY7nYleFYkG+/YVJ6zK3r0oPQSYHV+zOWwtoU/yO+W77gFqkyEjkBvkhTcQaHeyzynlEo7G6zUnKEcnVfw==" + }, + "ionicons": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.0.1.tgz", + "integrity": "sha512-P9GHr7pgCJcG211W0wute49NZ9AvJZvFJf4OwYybakjX6j7tu0q5t5HNWn9bcb9YjI7SxBblJg8iqQ1Yb59DXw==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "dev": true + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-api": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.6.tgz", + "integrity": "sha512-x0Eicp6KsShG1k1rMgBAi/1GgY7kFGEBwQpw3PXGEmu+rBcBNhqU8g2DgY9mlepAsLPzrzrbqSgCGANnki4POA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "compare-versions": "^3.4.0", + "fileset": "^2.0.3", + "istanbul-lib-coverage": "^2.0.5", + "istanbul-lib-hook": "^2.0.7", + "istanbul-lib-instrument": "^3.3.0", + "istanbul-lib-report": "^2.0.8", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^2.2.4", + "js-yaml": "^3.13.1", + "make-dir": "^2.1.0", + "minimatch": "^3.0.4", + "once": "^1.4.0" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", + "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "dev": true, + "requires": { + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", + "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", + "dev": true, + "requires": { + "append-transform": "^1.0.0" + } + }, + "istanbul-lib-instrument": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz", + "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@babel/parser": "^7.7.5", + "@babel/template": "^7.7.4", + "@babel/traverse": "^7.7.4", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", + "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "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" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "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" + } + }, + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "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 + } + } + }, + "istanbul-reports": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", + "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "dev": true, + "requires": { + "handlebars": "^4.1.2" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.4.0.tgz", + "integrity": "sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", + "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "dev": true, + "requires": { + "colors": "1.1.2" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "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 + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "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" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jszip": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", + "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-4.1.0.tgz", + "integrity": "sha512-xckiDqyNi512U4dXGOOSyLKPwek6X/vUizSy2f3geYevbLj+UIdvNwbn7IwfUIL2g1GXEPWt/87qFD1fBbl/Uw==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "braces": "^2.3.2", + "chokidar": "^2.0.3", + "colors": "^1.1.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.11", + "log4js": "^4.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.1.1", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.3.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "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 + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "^1.0.0", + "which": "^1.2.1" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.0.6.tgz", + "integrity": "sha512-WFh77RI8bMIKdOvI/1/IBmgnM+Q7NOLhnwG91QJrM8lW+CIXCjTzhhUsT/svLvAkLmR10uWY4RyYbHMLkTglvg==", + "dev": true, + "requires": { + "istanbul-api": "^2.1.6", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", + "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", + "dev": true, + "requires": { + "jasmine-core": "^3.3" + } + }, + "karma-jasmine-html-reporter": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.2.tgz", + "integrity": "sha512-ILBPsXqQ3eomq+oaQsM311/jxsypw5/d0LnZXj26XkfThwq7jZ55A2CFSKJVA5VekbbOGvMyv7d3juZj0SeTxA==", + "dev": true + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "less": { + "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", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + }, + "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, + "optional": true + } + } + }, + "less-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", + "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^4.0.1" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "requires": { + "leven": "^3.1.0" + } + }, + "license-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.2.tgz", + "integrity": "sha512-7poZHRla+ae0eEButlwMrPpkXyhNVBf2EHePYWT0jyLnI6311/OXJkTI2sOIRungRpQgU2oDMpro5bSFPT5F0A==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "loader-runner": { + "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.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "localforage": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.1.tgz", + "integrity": "sha1-5JJ+BCMCuGTbMPMhHxO1xvDell0=", + "requires": { + "lie": "3.1.1" + }, + "dependencies": { + "lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", + "requires": { + "immediate": "~3.0.5" + } + } + } + }, + "localforage-cordovasqlitedriver": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/localforage-cordovasqlitedriver/-/localforage-cordovasqlitedriver-1.7.0.tgz", + "integrity": "sha1-i5OVd1nuaI06WNW6fAR39sy1ODg=", + "requires": { + "localforage": ">=1.5.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "log4js": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", + "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", + "dev": true, + "requires": { + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", + "rfdc": "^1.1.4", + "streamroller": "^1.0.6" + }, + "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.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "loglevel": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz", + "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.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" + } + }, + "magic-string": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.3.tgz", + "integrity": "sha512-6QK0OpF/phMz0Q2AxILkX2mFhi7m+WMwTRg0LQKq/WBB0cDP4rYH3Wp4/d3OTXlrPLVJT/RFqj8tFeAR4nk8AA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "dev": true + }, + "make-fetch-happen": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.2.tgz", + "integrity": "sha512-YMJrAjHSb/BordlsDEcVcPyTbiJKkzqMf48N8dAJZT9Zjctrkb6Yg4TY9Sq2AwSIQJFn5qBBKVTYt3vP5FMIHA==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.3.3", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "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.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" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "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 + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.42.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz", + "integrity": "sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.25", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz", + "integrity": "sha512-5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg==", + "dev": true, + "requires": { + "mime-db": "1.42.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mini-css-extract-plugin": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", + "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "ngx-ionic-image-viewer": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/ngx-ionic-image-viewer/-/ngx-ionic-image-viewer-0.5.2.tgz", + "integrity": "sha512-xbPs9bOyIYj/mL5Qn0fY5KDaQocZ2lW8Gr/Uigc1yuKlts4Z97WecoHHC9/he7tke2Zflgy7bfvYfIP3koI89A==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ngx-mat-select-search": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-2.1.2.tgz", + "integrity": "sha512-LH6g51PwBsKFu9oOh5RQkC3XwE8InUbNVhHYA6PSUKPNNVx89fpHLXXnd6P/+XztL4+DNTVDeo/XzreIq7Pa4g==", + "requires": { + "tslib": "^1.9.0" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", + "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.49", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.49.tgz", + "integrity": "sha512-xH8t0LS0disN0mtRCh+eByxFPie+msJUBL/lJDBuap53QGiYPa9joh83K4pCZgWJ+2L4b9h88vCVdXQ60NO2bg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", + "integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.6.0", + "osenv": "^0.1.5", + "semver": "^5.5.0", + "validate-npm-package-name": "^3.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "npm-packlist": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.7.tgz", + "integrity": "sha512-vAj7dIkp5NhieaGZxBJB8fF4R0078rqsmhJcAfXZ6O7JJhjhPK96n5Ry1oZcfLXgfun0GWTZPOxaEyqv8GBykQ==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "npm-registry-fetch": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.1.tgz", + "integrity": "sha512-VQCEZlydXw4AwLROAXWUR7QDfe2Y8Id/vpAgp6TI1/H78a4SiQ1kQrKZALm5/zxM5n4HIi+aYb+idUAV/RuY0Q==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.2", + "npm-package-arg": "^6.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "dev": true + }, + "object-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", + "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "objectorarray": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", + "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==" + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + } + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "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": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true + }, + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pacote": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.1.tgz", + "integrity": "sha512-Zqvczvf/zZ7QNosdE9uTC7SRuvSs9tFqRkF6cJl+2HH7COBnx4BRAGpeXJlrbN+mM0CMHpbi620xdEHhCflghA==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^11.3.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^3.8.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.8", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", + "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "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", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "phonegap-plugin-multidex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/phonegap-plugin-multidex/-/phonegap-plugin-multidex-1.0.0.tgz", + "integrity": "sha512-1wvc3iQOQpEBaQbXgLxA2JUiLSQ2azdF/bF29ghXDiQJWSpQ1BF8gSuqttM8WZoj081Ps8OKL0gYxdDBkFNPqA==" + }, + "phonegap-plugin-push": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/phonegap-plugin-push/-/phonegap-plugin-push-2.3.0.tgz", + "integrity": "sha512-0R35BGVvvNzov3fckBspc7snwsIdClIBhI7jUCIa7AgSZy2Lrwm8kPuLTyzMVSNR3MJTxWX6s06aDlVL7EvQ3w==", + "requires": { + "install": "^0.8.2" + } + }, + "picomatch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "plist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", + "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "requires": { + "base64-js": "^1.2.3", + "xmlbuilder": "^9.0.7", + "xmldom": "0.1.x" + }, + "dependencies": { + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + } + } + }, + "portfinder": { + "version": "1.0.25", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", + "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "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 + }, + "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": "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": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", + "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "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": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + } + }, + "postcss-value-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "properties-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz", + "integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=", + "requires": { + "string.prototype.codepointat": "^0.2.0" + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, + "protractor": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.3.tgz", + "integrity": "sha512-7pMAolv8Ah1yJIqaorDTzACtn3gk7BamVKPTeO5lqIGOrfosjPgXFx/z1dqSI+m5EeZc2GMJHPr5DYlodujDNA==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "optimist": "~0.6.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.0.6" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "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 + }, + "webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + } + } + } + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "raw-loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", + "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^2.0.1" + }, + "dependencies": { + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "schema-utils": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + } + }, + "read-package-json": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", + "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", + "dev": true, + "requires": { + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "json-parse-better-errors": "^1.0.1", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "requires": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "requires": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "readdirp": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", + "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.7" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", + "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.22.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.22.9.tgz", + "integrity": "sha512-FzU1X2V8DlnqabrL4u7OBwD2vcOzNMongEJEx3xMEhWY/v26FFR3aG0hyeu2T965sfR0E9ufJwmG+Qjz78vFPQ==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.2.0.tgz", + "integrity": "sha512-h8yUWaWtsbuIiOCgR9fd9c2lRXZ2uG+h8Dzg/AGNj+Hg/3TO8+BBAW9mEP+mh8ei+qBKqSJ0F1FLlYjNBc61OA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.0.1", + "neo-async": "^2.5.0", + "pify": "^4.0.1", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", + "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "dev": true, + "requires": { + "node-forge": "0.9.0" + } + }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==" + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "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 + } + } + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", + "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-plist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.1.0.tgz", + "integrity": "sha512-2i5Tc0BYAqppM7jVzmNrI+aEUntPolIq4fDgji6WuNNn1D/qYdn2KwoLhZdzQkE04lu9L5tUoeJsjuJAvd+lFg==", + "requires": { + "bplist-creator": "0.0.8", + "bplist-parser": "0.2.0", + "plist": "^3.0.1" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "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.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-loader": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", + "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", + "dev": true, + "requires": { + "async": "^2.5.0", + "loader-utils": "^1.1.0" + } + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "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 + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.7.tgz", + "integrity": "sha512-RuN23NzhAOuUtaivhcrjXx1OPXsFeH9m5sI373/U7+tGLKihjUyboZAzOadytMjnqHp1f45RGk1IzDKCpDpSYA==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "spdy": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", + "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "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.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "spdy-transport": { + "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": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "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.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", + "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-browserify": { + "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", + "readable-stream": "^2.0.2" + } + }, + "stream-buffers": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", + "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=" + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "streamroller": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", + "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "dev": true, + "requires": { + "async": "^2.6.2", + "date-format": "^2.0.0", + "debug": "^3.2.6", + "fs-extra": "^7.0.1", + "lodash": "^4.17.14" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.codepointat": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==" + }, + "string.prototype.trimleft": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimright": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "style-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", + "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", + "dev": true, + "requires": { + "loader-utils": "^1.2.3", + "schema-utils": "^2.0.1" + }, + "dependencies": { + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + }, + "schema-utils": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.4.tgz", + "integrity": "sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1" + } + } + } + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } + }, + "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" + } + }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "terser": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.3.tgz", + "integrity": "sha512-Lw+ieAXmY69d09IIc/yqeBqXpEQIpDGZqT34ui1QWXIUpR2RjbqEkT8X7Lgex19hslSqcWM5iMN2kM11eMsESQ==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "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 + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", + "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "cacache": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", + "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "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.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^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 + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + } + }, + "tslib": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", + "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" + }, + "tslint": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.15.0.tgz", + "integrity": "sha512-6bIEujKR21/3nyeoX2uBnE8s+tMXCQXhqMmaIPJpHmXJoBJPTLcI7/VHRtUwMhnLVdwLqqY3zmd8Dxqa5CVdJA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.13.0", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "3.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz", + "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==", + "dev": true + }, + "uglify-js": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.3.tgz", + "integrity": "sha512-7tINm46/3puUA4hCkKYo4Xdts+JDaVC9ZPRcG8Xw9R4nhO/gZgUM3TENq8IF4Vatk8qCig4MzP/c8G4u2BkVQg==", + "dev": true, + "optional": true, + "requires": { + "commander": "~2.20.3", + "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, + "optional": true + } + } + }, + "uk.co.workingedge.phonegap.plugin.launchnavigator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/uk.co.workingedge.phonegap.plugin.launchnavigator/-/uk.co.workingedge.phonegap.plugin.launchnavigator-5.0.4.tgz", + "integrity": "sha512-DMRb3kV9dUEDD2baJhUgLg4qDMQ21kdwkOuPvMzOnWfpIUe2WviVCH3BjJOoXVR+RrxxBsT5FtSDkC1yt8Sa4A==" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "underscore": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", + "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-analytics": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz", + "integrity": "sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==", + "dev": true, + "requires": { + "debug": "^3.0.0", + "request": "^2.88.0", + "uuid": "^3.0.0" + }, + "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" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "util": { + "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" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "requires": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "watermarkjs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watermarkjs/-/watermarkjs-2.1.1.tgz", + "integrity": "sha512-HDabpga8Fz5d61Z7gBkKO2cDsfViAU/mO5qIoWmDX92wJZLb7Dv4L+CwoHAqS4XkqWcYVGy/AF035BD1EN3v/g==" + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webpack": { + "version": "4.39.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz", + "integrity": "sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.1", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "ajv": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.11.0.tgz", + "integrity": "sha512-nCprB/0syFYy9fVYU1ox1l2KN8S9I+tziH8D4zdZuLT3N6RMlGSGt5FSTpAiHB/Whv8Qs1cWHma1aMKZyaHRKA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true + } + } + }, + "webpack-core": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", + "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", + "dev": true, + "requires": { + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" + }, + "dependencies": { + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz", + "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.4", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.4.0", + "spdy": "^4.0.1", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "12.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "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" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "3.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.14.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.13", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "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.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "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 + } + } + }, + "webpack-subresource-integrity": { + "version": "1.1.0-rc.6", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.6.tgz", + "integrity": "sha512-Az7y8xTniNhaA0620AV1KPwWOqawurVVDzQSpPAeR5RwNbL91GoBSJAAo9cfd+GiFHwsS5bbHepBw1e6Hzxy4w==", + "dev": true, + "requires": { + "webpack-core": "^0.6.8" + } + }, + "websocket-driver": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", + "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "with-open-file": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + } + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", + "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xcode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/xcode/-/xcode-2.1.0.tgz", + "integrity": "sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==", + "requires": { + "simple-plist": "^1.0.0", + "uuid": "^3.3.2" + } + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "dependencies": { + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + } + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, + "zone.js": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.9.1.tgz", + "integrity": "sha512-GkPiJL8jifSrKReKaTZ5jkhrMEgXbXYC+IPo1iquBjayRa0q86w3Dipjn8b415jpitMExe9lV8iTsv8tk3DGag==" + } + } +} diff --git a/package.json b/package.json new file mode 100755 index 0000000..0bd7f28 --- /dev/null +++ b/package.json @@ -0,0 +1,150 @@ +{ + "name": "vendor_officer", + "version": "0.0.1", + "author": "PD Genie", + "homepage": "https://pdgenie.com", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "^8.2.14", + "@angular/cdk": "^8.2.3", + "@angular/common": "~8.1.2", + "@angular/core": "~8.1.2", + "@angular/forms": "~8.1.2", + "@angular/material": "^8.2.3", + "@angular/platform-browser": "~8.1.2", + "@angular/platform-browser-dynamic": "~8.1.2", + "@angular/router": "~8.1.2", + "@ionic-native/android-permissions": "^5.22.0", + "@ionic-native/app-version": "^5.22.0", + "@ionic-native/background-geolocation": "^5.22.0", + "@ionic-native/camera": "^5.22.0", + "@ionic-native/core": "^5.22.0", + "@ionic-native/diagnostic": "^5.22.0", + "@ionic-native/document-scanner": "^5.28.0", + "@ionic-native/file": "^5.22.0", + "@ionic-native/fingerprint-aio": "^5.22.0", + "@ionic-native/geolocation": "^5.22.0", + "@ionic-native/launch-navigator": "^5.22.0", + "@ionic-native/location-accuracy": "^5.22.0", + "@ionic-native/market": "^5.22.0", + "@ionic-native/push": "^5.22.0", + "@ionic-native/splash-screen": "^5.22.0", + "@ionic-native/sqlite": "^5.22.0", + "@ionic-native/status-bar": "^5.22.0", + "@ionic/angular": "^5.2.1", + "@ionic/storage": "^2.2.0", + "@netbasal/content-loader": "^1.1.0", + "amazon-cognito-identity-js": "^3.2.5", + "cordova-android": "^9.0.0", + "cordova-plugin-actionsheet": "2.3.3", + "cordova-plugin-android-permissions": "1.0.2", + "cordova-plugin-app-version": "0.1.9", + "cordova-plugin-camera": "4.1.0", + "cordova-plugin-device": "^2.0.3", + "cordova-plugin-dialogs": "2.0.2", + "cordova-plugin-document-scanner": "4.2.3", + "cordova-plugin-file": "6.0.2", + "cordova-plugin-fingerprint-aio": "3.0.1", + "cordova-plugin-geolocation": "4.0.2", + "cordova-plugin-ionic-keyboard": "^2.2.0", + "cordova-plugin-ionic-webview": "^4.1.3", + "cordova-plugin-market": "1.2.0", + "cordova-plugin-mauron85-background-geolocation": "3.0.1", + "cordova-plugin-request-location-accuracy": "2.3.0", + "cordova-plugin-splashscreen": "^5.0.3", + "cordova-plugin-statusbar": "^2.4.3", + "cordova-plugin-whitelist": "^1.3.4", + "cordova-sqlite-storage": "4.0.0", + "cordova-support-google-services": "^1.3.2", + "cordova.plugins.diagnostic": "5.0.1", + "core-js": "^2.5.4", + "ionic-cache": "^4.1.0", + "ngx-ionic-image-viewer": "^0.5.2", + "ngx-mat-select-search": "^2.1.2", + "phonegap-plugin-multidex": "^1.0.0", + "phonegap-plugin-push": "2.3.0", + "rxjs": "^6.5.4", + "tslib": "^1.11.1", + "uk.co.workingedge.phonegap.plugin.launchnavigator": "5.0.4", + "watermarkjs": "^2.1.1", + "zone.js": "~0.9.1" + }, + "devDependencies": { + "@angular-devkit/architect": "~0.801.2", + "@angular-devkit/build-angular": "^0.803.25", + "@angular-devkit/core": "~8.1.2", + "@angular-devkit/schematics": "~8.1.2", + "@angular/cli": "~8.1.2", + "@angular/compiler": "~8.1.2", + "@angular/compiler-cli": "~8.1.2", + "@angular/language-service": "~8.1.2", + "@ionic/angular-toolkit": "^2.2.0", + "@types/jasmine": "~3.3.8", + "@types/jasminewd2": "~2.0.3", + "@types/node": "~8.9.4", + "codelyzer": "^5.0.0", + "jasmine-core": "~3.4.0", + "jasmine-spec-reporter": "~4.2.1", + "karma": "~4.1.0", + "karma-chrome-launcher": "~2.2.0", + "karma-coverage-istanbul-reporter": "~2.0.1", + "karma-jasmine": "~2.0.1", + "karma-jasmine-html-reporter": "^1.5.2", + "protractor": "^5.4.3", + "ts-node": "~7.0.0", + "tslint": "~5.15.0", + "typescript": "~3.4.3" + }, + "description": "An Ionic project", + "cordova": { + "plugins": { + "cordova-plugin-android-permissions": {}, + "cordova-plugin-app-version": {}, + "cordova-plugin-mauron85-background-geolocation": { + "GOOGLE_PLAY_SERVICES_VERSION": "11+", + "ANDROID_SUPPORT_LIBRARY_VERSION": "26+", + "ICON": "@mipmap/icon", + "SMALL_ICON": "@mipmap/icon", + "ACCOUNT_NAME": "@string/app_name", + "ACCOUNT_LABEL": "@string/app_name", + "ACCOUNT_TYPE": "$PACKAGE_NAME.account", + "CONTENT_AUTHORITY": "$PACKAGE_NAME" + }, + "cordova-plugin-camera": {}, + "cordova-plugin-fingerprint-aio": {}, + "cordova-plugin-geolocation": {}, + "uk.co.workingedge.phonegap.plugin.launchnavigator": { + "GOOGLE_API_KEY_FOR_ANDROID": "AIzaSyA3lYDYxwtn5vLSl45SOKbtK7G6cEyXGr0", + "OKHTTP_VERSION": "3.12.0" + }, + "cordova-plugin-request-location-accuracy": {}, + "phonegap-plugin-push": {}, + "cordova-sqlite-storage": {}, + "cordova-plugin-market": {}, + "cordova-plugin-whitelist": {}, + "cordova-plugin-statusbar": {}, + "cordova-plugin-device": {}, + "cordova-plugin-splashscreen": {}, + "cordova-plugin-ionic-webview": { + "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+" + }, + "cordova-plugin-ionic-keyboard": {}, + "cordova-plugin-document-scanner": {}, + "cordova-plugin-file": {}, + "cordova.plugins.diagnostic": { + "ANDROID_SUPPORT_VERSION": "28.+" + } + }, + "platforms": [ + "android" + ] + } +} \ No newline at end of file diff --git a/releaseApk/No Use/pd-officer.jks b/releaseApk/No Use/pd-officer.jks new file mode 100755 index 0000000..b5083a8 Binary files /dev/null and b/releaseApk/No Use/pd-officer.jks differ diff --git a/releaseApk/Problem.txt b/releaseApk/Problem.txt new file mode 100755 index 0000000..615e1bd --- /dev/null +++ b/releaseApk/Problem.txt @@ -0,0 +1,19 @@ +problem: Failed to apply plugin [class 'com.google.gms.googleservices.GoogleServicesPlugin'] + > For input string: "11+" + +solution:Go to src/platform/android/project.properties---->change the gms location and firebase-messaging version to 11.+ + + +For apk size Highly increased problem(Due to camera scanner plugin - openCv libraries) +--------------------- + +Go to src/platform/android/app/build.gradle -> add +ndk { + abiFilters "armeabi-v7a", "arm64-v8a" // includes ARM SO files only, so no x86 SO file + } +the above object inside of + +android { + defaultConfig { + + diff --git a/releaseApk/ReadMe.txt b/releaseApk/ReadMe.txt new file mode 100755 index 0000000..913d34d --- /dev/null +++ b/releaseApk/ReadMe.txt @@ -0,0 +1,33 @@ +key Name :pd-genie-officer.jks +password: pdgenieofficer + + + +commands: + +command 1 GENERATE A KEY(One Time Generation only) +-------------------------------------------------- + +keytool -genkey -v -keystore lender.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias (One time only) + + + +command 2 SIGN THE APK +---------------------- + +jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore pd-genie-officer.jks app-release-unsigned.apk my-alias + +command 3 OPTIMIZE THE APK +-------------------------- + +zipalign -v 4 app-release-unsigned.apk pd_genie_officer.apk + +command 4 VERIFY THE SIGNED APK +------------------------------- + +apksigner verify pd_genie_officer.apk + + + + + diff --git a/releaseApk/pd-genie-officer.jks b/releaseApk/pd-genie-officer.jks new file mode 100755 index 0000000..cb533fe Binary files /dev/null and b/releaseApk/pd-genie-officer.jks differ diff --git a/report.20200205.192559.19684.0.001.json b/report.20200205.192559.19684.0.001.json new file mode 100755 index 0000000..25b1f62 --- /dev/null +++ b/report.20200205.192559.19684.0.001.json @@ -0,0 +1,365 @@ + +{ + "header": { + "reportVersion": 1, + "event": "Allocation failed - JavaScript heap out of memory", + "trigger": "FatalError", + "filename": "report.20200205.192559.19684.0.001.json", + "dumpEventTime": "2020-02-05T19:25:59Z", + "dumpEventTimeStamp": "1580910959478", + "processId": 19684, + "cwd": "/home/rajasekar/project/SineEdge/Resource/Ionic4 migration/pd_officer_v4", + "commandLine": [ + "/usr/local/bin/node", + "/home/rajasekar/project/SineEdge/Resource/Ionic4 migration/pd_officer_v4/node_modules/jest-worker/build/workers/processChild.js" + ], + "nodejsVersion": "v12.9.0", + "glibcVersionRuntime": "2.23", + "glibcVersionCompiler": "2.17", + "wordSize": 64, + "arch": "x64", + "platform": "linux", + "componentVersions": { + "node": "12.9.0", + "v8": "7.6.303.29-node.15", + "uv": "1.31.0", + "zlib": "1.2.11", + "brotli": "1.0.7", + "ares": "1.15.0", + "modules": "72", + "nghttp2": "1.39.2", + "napi": "4", + "llhttp": "1.1.4", + "http_parser": "2.8.0", + "openssl": "1.1.1c", + "cldr": "35.1", + "icu": "64.2", + "tz": "2019a", + "unicode": "12.1" + }, + "release": { + "name": "node", + "headersUrl": "https://nodejs.org/download/release/v12.9.0/node-v12.9.0-headers.tar.gz", + "sourceUrl": "https://nodejs.org/download/release/v12.9.0/node-v12.9.0.tar.gz" + }, + "osName": "Linux", + "osRelease": "4.4.0-150-generic", + "osVersion": "#176-Ubuntu SMP Wed May 29 18:56:26 UTC 2019", + "osMachine": "x86_64", + "cpus": [ + { + "model": "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz", + "speed": 2000, + "user": 57009400, + "nice": 60700, + "sys": 11595400, + "idle": 240164800, + "irq": 0 + }, + { + "model": "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz", + "speed": 2000, + "user": 58024200, + "nice": 62800, + "sys": 13428300, + "idle": 236402200, + "irq": 0 + }, + { + "model": "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz", + "speed": 2000, + "user": 56237200, + "nice": 75000, + "sys": 11413600, + "idle": 238351900, + "irq": 0 + }, + { + "model": "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz", + "speed": 2000, + "user": 54480800, + "nice": 64300, + "sys": 12108000, + "idle": 241536800, + "irq": 0 + } + ], + "networkInterfaces": [ + { + "name": "lo", + "internal": true, + "mac": "00:00:00:00:00:00", + "address": "127.0.0.1", + "netmask": "255.0.0.0", + "family": "IPv4" + }, + { + "name": "wlp1s0", + "internal": false, + "mac": "a8:6b:ad:81:1d:8f", + "address": "192.168.0.109", + "netmask": "255.255.255.0", + "family": "IPv4" + }, + { + "name": "lo", + "internal": true, + "mac": "00:00:00:00:00:00", + "address": "::1", + "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "family": "IPv6", + "scopeid": 0 + }, + { + "name": "wlp1s0", + "internal": false, + "mac": "a8:6b:ad:81:1d:8f", + "address": "fe80::39af:d850:bca6:37cc", + "netmask": "ffff:ffff:ffff:ffff::", + "family": "IPv6", + "scopeid": 3 + }, + { + "name": "wlp1s0", + "internal": false, + "mac": "a8:6b:ad:81:1d:8f", + "address": "fe80::aea:bb2c:66ac:af34", + "netmask": "ffff:ffff:ffff:ffff::", + "family": "IPv6", + "scopeid": 3 + }, + { + "name": "wlp1s0", + "internal": false, + "mac": "a8:6b:ad:81:1d:8f", + "address": "fe80::9f05:48b2:4d04:f4dc", + "netmask": "ffff:ffff:ffff:ffff::", + "family": "IPv6", + "scopeid": 3 + } + ], + "host": "rajasekar-Vostro-15-3568" + }, + "javascriptStack": { + "message": "No stack.", + "stack": [ + "Unavailable." + ] + }, + "nativeStack": [ + { + "pc": "0x0000000000ae38f5", + "symbol": "report::TriggerNodeReport(v8::Isolate*, node::Environment*, char const*, char const*, std::string const&, v8::Local) [/usr/local/bin/node]" + }, + { + "pc": "0x00000000009bdcc3", + "symbol": "node::OnFatalError(char const*, char const*) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000b18ede", + "symbol": "v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000b19259", + "symbol": "v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000ccab35", + "symbol": " [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000ccb1a6", + "symbol": "v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000cd69da", + "symbol": "v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000cd78e5", + "symbol": "v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000cda3a8", + "symbol": "v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000ca1ed7", + "symbol": "v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000fc9f28", + "symbol": "v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]" + }, + { + "pc": "0x000000000134f099", + "symbol": " [/usr/local/bin/node]" + } + ], + "javascriptHeap": { + "totalMemory": 2153148416, + "totalCommittedMemory": 2148933984, + "usedMemory": 2122776784, + "availableMemory": 49638160, + "memoryLimit": 2197815296, + "heapSpaces": { + "read_only_space": { + "memorySize": 262144, + "committedMemory": 31744, + "capacity": 261832, + "used": 31432, + "available": 230400 + }, + "new_space": { + "memorySize": 4194304, + "committedMemory": 1218744, + "capacity": 2094656, + "used": 166552, + "available": 1928104 + }, + "old_space": { + "memorySize": 2052698112, + "committedMemory": 2052275576, + "capacity": 2028556032, + "used": 2027837912, + "available": 718120 + }, + "code_space": { + "memorySize": 1736704, + "committedMemory": 1630816, + "capacity": 1534368, + "used": 1534368, + "available": 0 + }, + "map_space": { + "memorySize": 1839104, + "committedMemory": 1359056, + "capacity": 930960, + "used": 930960, + "available": 0 + }, + "large_object_space": { + "memorySize": 92368896, + "committedMemory": 92368896, + "capacity": 92272104, + "used": 92272104, + "available": 0 + }, + "code_large_object_space": { + "memorySize": 49152, + "committedMemory": 49152, + "capacity": 3456, + "used": 3456, + "available": 0 + }, + "new_large_object_space": { + "memorySize": 0, + "committedMemory": 0, + "capacity": 2094656, + "used": 0, + "available": 2094656 + } + } + }, + "resourceUsage": { + "userCpuSeconds": 212.76, + "kernelCpuSeconds": 4.172, + "cpuConsumptionPercent": 173.546, + "maxRss": 2275667968, + "pageFaults": { + "IORequired": 10, + "IONotRequired": 1089707 + }, + "fsActivity": { + "reads": 4360, + "writes": 11792 + } + }, + "uvthreadResourceUsage": { + "userCpuSeconds": 97.748, + "kernelCpuSeconds": 2.224, + "cpuConsumptionPercent": 79.9776, + "fsActivity": { + "reads": 4264, + "writes": 5840 + } + }, + "libuv": [ + ], + "environmentVariables": { + "TERM": "xterm-256color", + "PATH": "/home/rajasekar/project/SineEdge/Resource/Ionic4 migration/pd_officer_v4/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin", + "LANG": "en_GB.UTF-8", + "HOME": "/home/rajasekar", + "LANGUAGE": "en_IN:en", + "DISPLAY": ":0", + "XAUTHORITY": "/home/rajasekar/.Xauthority", + "MAIL": "/var/mail/root", + "LOGNAME": "root", + "USER": "root", + "USERNAME": "root", + "SHELL": "/bin/bash", + "SUDO_COMMAND": "/usr/local/bin/ionic cordova build android", + "SUDO_USER": "rajasekar", + "SUDO_UID": "1001", + "SUDO_GID": "1001", + "IONIC_CLI_BIN": "/usr/local/lib/node_modules/ionic/bin/ionic", + "IONIC_CLI_LIB": "/usr/local/lib/node_modules/ionic", + "IONIC_CLI_LOCAL_ERROR": "LOCAL_CLI_NOT_FOUND", + "FORCE_COLOR": "1", + "WEBPACK_DEV_SERVER": "true", + "JEST_WORKER_ID": "3" + }, + "userLimits": { + "core_file_size_blocks": { + "soft": 0, + "hard": "unlimited" + }, + "data_seg_size_kbytes": { + "soft": "unlimited", + "hard": "unlimited" + }, + "file_size_blocks": { + "soft": "unlimited", + "hard": "unlimited" + }, + "max_locked_memory_bytes": { + "soft": 65536, + "hard": 65536 + }, + "max_memory_size_kbytes": { + "soft": "unlimited", + "hard": "unlimited" + }, + "open_files": { + "soft": 1048576, + "hard": 1048576 + }, + "stack_size_bytes": { + "soft": 8388608, + "hard": "unlimited" + }, + "cpu_time_seconds": { + "soft": "unlimited", + "hard": "unlimited" + }, + "max_user_processes": { + "soft": 30756, + "hard": 30756 + }, + "virtual_memory_kbytes": { + "soft": "unlimited", + "hard": "unlimited" + } + }, + "sharedObjects": [ + "/lib/x86_64-linux-gnu/libdl.so.2", + "/lib/x86_64-linux-gnu/librt.so.1", + "/usr/lib/x86_64-linux-gnu/libstdc++.so.6", + "/lib/x86_64-linux-gnu/libm.so.6", + "/lib/x86_64-linux-gnu/libgcc_s.so.1", + "/lib/x86_64-linux-gnu/libpthread.so.0", + "/lib/x86_64-linux-gnu/libc.so.6", + "/lib64/ld-linux-x86-64.so.2" + ] +} \ No newline at end of file diff --git a/report.20200205.192809.19728.0.001.json b/report.20200205.192809.19728.0.001.json new file mode 100755 index 0000000..91b24b1 --- /dev/null +++ b/report.20200205.192809.19728.0.001.json @@ -0,0 +1,365 @@ + +{ + "header": { + "reportVersion": 1, + "event": "Allocation failed - JavaScript heap out of memory", + "trigger": "FatalError", + "filename": "report.20200205.192809.19728.0.001.json", + "dumpEventTime": "2020-02-05T19:28:09Z", + "dumpEventTimeStamp": "1580911089060", + "processId": 19728, + "cwd": "/home/rajasekar/project/SineEdge/Resource/Ionic4 migration/pd_officer_v4", + "commandLine": [ + "/usr/local/bin/node", + "/home/rajasekar/project/SineEdge/Resource/Ionic4 migration/pd_officer_v4/node_modules/jest-worker/build/workers/processChild.js" + ], + "nodejsVersion": "v12.9.0", + "glibcVersionRuntime": "2.23", + "glibcVersionCompiler": "2.17", + "wordSize": 64, + "arch": "x64", + "platform": "linux", + "componentVersions": { + "node": "12.9.0", + "v8": "7.6.303.29-node.15", + "uv": "1.31.0", + "zlib": "1.2.11", + "brotli": "1.0.7", + "ares": "1.15.0", + "modules": "72", + "nghttp2": "1.39.2", + "napi": "4", + "llhttp": "1.1.4", + "http_parser": "2.8.0", + "openssl": "1.1.1c", + "cldr": "35.1", + "icu": "64.2", + "tz": "2019a", + "unicode": "12.1" + }, + "release": { + "name": "node", + "headersUrl": "https://nodejs.org/download/release/v12.9.0/node-v12.9.0-headers.tar.gz", + "sourceUrl": "https://nodejs.org/download/release/v12.9.0/node-v12.9.0.tar.gz" + }, + "osName": "Linux", + "osRelease": "4.4.0-150-generic", + "osVersion": "#176-Ubuntu SMP Wed May 29 18:56:26 UTC 2019", + "osMachine": "x86_64", + "cpus": [ + { + "model": "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz", + "speed": 1988, + "user": 57621500, + "nice": 61100, + "sys": 11646000, + "idle": 240726200, + "irq": 0 + }, + { + "model": "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz", + "speed": 1988, + "user": 58644900, + "nice": 63500, + "sys": 13482000, + "idle": 236944600, + "irq": 0 + }, + { + "model": "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz", + "speed": 1957, + "user": 56905600, + "nice": 75400, + "sys": 11471600, + "idle": 238799100, + "irq": 0 + }, + { + "model": "Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz", + "speed": 1932, + "user": 55237900, + "nice": 65000, + "sys": 12161800, + "idle": 241955400, + "irq": 0 + } + ], + "networkInterfaces": [ + { + "name": "lo", + "internal": true, + "mac": "00:00:00:00:00:00", + "address": "127.0.0.1", + "netmask": "255.0.0.0", + "family": "IPv4" + }, + { + "name": "wlp1s0", + "internal": false, + "mac": "a8:6b:ad:81:1d:8f", + "address": "192.168.0.109", + "netmask": "255.255.255.0", + "family": "IPv4" + }, + { + "name": "lo", + "internal": true, + "mac": "00:00:00:00:00:00", + "address": "::1", + "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff", + "family": "IPv6", + "scopeid": 0 + }, + { + "name": "wlp1s0", + "internal": false, + "mac": "a8:6b:ad:81:1d:8f", + "address": "fe80::39af:d850:bca6:37cc", + "netmask": "ffff:ffff:ffff:ffff::", + "family": "IPv6", + "scopeid": 3 + }, + { + "name": "wlp1s0", + "internal": false, + "mac": "a8:6b:ad:81:1d:8f", + "address": "fe80::aea:bb2c:66ac:af34", + "netmask": "ffff:ffff:ffff:ffff::", + "family": "IPv6", + "scopeid": 3 + }, + { + "name": "wlp1s0", + "internal": false, + "mac": "a8:6b:ad:81:1d:8f", + "address": "fe80::9f05:48b2:4d04:f4dc", + "netmask": "ffff:ffff:ffff:ffff::", + "family": "IPv6", + "scopeid": 3 + } + ], + "host": "rajasekar-Vostro-15-3568" + }, + "javascriptStack": { + "message": "No stack.", + "stack": [ + "Unavailable." + ] + }, + "nativeStack": [ + { + "pc": "0x0000000000ae38f5", + "symbol": "report::TriggerNodeReport(v8::Isolate*, node::Environment*, char const*, char const*, std::string const&, v8::Local) [/usr/local/bin/node]" + }, + { + "pc": "0x00000000009bdcc3", + "symbol": "node::OnFatalError(char const*, char const*) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000b18ede", + "symbol": "v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000b19259", + "symbol": "v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000ccab35", + "symbol": " [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000ccb1a6", + "symbol": "v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000cd69da", + "symbol": "v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000cd78e5", + "symbol": "v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000cda3a8", + "symbol": "v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000ca1ed7", + "symbol": "v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType) [/usr/local/bin/node]" + }, + { + "pc": "0x0000000000fc9f28", + "symbol": "v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]" + }, + { + "pc": "0x000000000134f099", + "symbol": " [/usr/local/bin/node]" + } + ], + "javascriptHeap": { + "totalMemory": 2153639936, + "totalCommittedMemory": 2149642688, + "usedMemory": 2123023336, + "availableMemory": 48544168, + "memoryLimit": 2197815296, + "heapSpaces": { + "read_only_space": { + "memorySize": 262144, + "committedMemory": 31744, + "capacity": 261832, + "used": 31432, + "available": 230400 + }, + "new_space": { + "memorySize": 4194304, + "committedMemory": 1220024, + "capacity": 2094656, + "used": 167960, + "available": 1926696 + }, + "old_space": { + "memorySize": 2053746688, + "committedMemory": 2053331128, + "capacity": 2028386000, + "used": 2028268944, + "available": 117056 + }, + "code_space": { + "memorySize": 1736704, + "committedMemory": 1519360, + "capacity": 1357824, + "used": 1357824, + "available": 0 + }, + "map_space": { + "memorySize": 1314816, + "committedMemory": 1155152, + "capacity": 923920, + "used": 923920, + "available": 0 + }, + "large_object_space": { + "memorySize": 92368896, + "committedMemory": 92368896, + "capacity": 92272104, + "used": 92272104, + "available": 0 + }, + "code_large_object_space": { + "memorySize": 16384, + "committedMemory": 16384, + "capacity": 1152, + "used": 1152, + "available": 0 + }, + "new_large_object_space": { + "memorySize": 0, + "committedMemory": 0, + "capacity": 2094656, + "used": 0, + "available": 2094656 + } + } + }, + "resourceUsage": { + "userCpuSeconds": 207.016, + "kernelCpuSeconds": 4.052, + "cpuConsumptionPercent": 173.007, + "maxRss": 2257125376, + "pageFaults": { + "IORequired": 2, + "IONotRequired": 1150153 + }, + "fsActivity": { + "reads": 25032, + "writes": 0 + } + }, + "uvthreadResourceUsage": { + "userCpuSeconds": 94.952, + "kernelCpuSeconds": 2.184, + "cpuConsumptionPercent": 79.6197, + "fsActivity": { + "reads": 25032, + "writes": 0 + } + }, + "libuv": [ + ], + "environmentVariables": { + "TERM": "xterm-256color", + "PATH": "/home/rajasekar/project/SineEdge/Resource/Ionic4 migration/pd_officer_v4/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin", + "LANG": "en_GB.UTF-8", + "HOME": "/home/rajasekar", + "LANGUAGE": "en_IN:en", + "DISPLAY": ":0", + "XAUTHORITY": "/home/rajasekar/.Xauthority", + "MAIL": "/var/mail/root", + "LOGNAME": "root", + "USER": "root", + "USERNAME": "root", + "SHELL": "/bin/bash", + "SUDO_COMMAND": "/usr/local/bin/ionic cordova build android", + "SUDO_USER": "rajasekar", + "SUDO_UID": "1001", + "SUDO_GID": "1001", + "IONIC_CLI_BIN": "/usr/local/lib/node_modules/ionic/bin/ionic", + "IONIC_CLI_LIB": "/usr/local/lib/node_modules/ionic", + "IONIC_CLI_LOCAL_ERROR": "LOCAL_CLI_NOT_FOUND", + "FORCE_COLOR": "1", + "WEBPACK_DEV_SERVER": "true", + "JEST_WORKER_ID": "3" + }, + "userLimits": { + "core_file_size_blocks": { + "soft": 0, + "hard": "unlimited" + }, + "data_seg_size_kbytes": { + "soft": "unlimited", + "hard": "unlimited" + }, + "file_size_blocks": { + "soft": "unlimited", + "hard": "unlimited" + }, + "max_locked_memory_bytes": { + "soft": 65536, + "hard": 65536 + }, + "max_memory_size_kbytes": { + "soft": "unlimited", + "hard": "unlimited" + }, + "open_files": { + "soft": 1048576, + "hard": 1048576 + }, + "stack_size_bytes": { + "soft": 8388608, + "hard": "unlimited" + }, + "cpu_time_seconds": { + "soft": "unlimited", + "hard": "unlimited" + }, + "max_user_processes": { + "soft": 30756, + "hard": 30756 + }, + "virtual_memory_kbytes": { + "soft": "unlimited", + "hard": "unlimited" + } + }, + "sharedObjects": [ + "/lib/x86_64-linux-gnu/libdl.so.2", + "/lib/x86_64-linux-gnu/librt.so.1", + "/usr/lib/x86_64-linux-gnu/libstdc++.so.6", + "/lib/x86_64-linux-gnu/libm.so.6", + "/lib/x86_64-linux-gnu/libgcc_s.so.1", + "/lib/x86_64-linux-gnu/libpthread.so.0", + "/lib/x86_64-linux-gnu/libc.so.6", + "/lib64/ld-linux-x86-64.so.2" + ] +} \ No newline at end of file diff --git a/resources/README.md b/resources/README.md new file mode 100755 index 0000000..46c696e --- /dev/null +++ b/resources/README.md @@ -0,0 +1,8 @@ +These are Cordova resources. You can replace icon.png and splash.png and run +`ionic cordova resources` to generate custom icons and splash screens for your +app. See `ionic cordova resources --help` for details. + +Cordova reference documentation: + +- Icons: https://cordova.apache.org/docs/en/latest/config_ref/images.html +- Splash Screens: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/ diff --git a/resources/android/icon/drawable-hdpi-icon.png b/resources/android/icon/drawable-hdpi-icon.png new file mode 100755 index 0000000..ebb4937 Binary files /dev/null and b/resources/android/icon/drawable-hdpi-icon.png differ diff --git a/resources/android/icon/drawable-ldpi-icon.png b/resources/android/icon/drawable-ldpi-icon.png new file mode 100755 index 0000000..b2d65bb Binary files /dev/null and b/resources/android/icon/drawable-ldpi-icon.png differ diff --git a/resources/android/icon/drawable-mdpi-icon.png b/resources/android/icon/drawable-mdpi-icon.png new file mode 100755 index 0000000..42d6400 Binary files /dev/null and b/resources/android/icon/drawable-mdpi-icon.png differ diff --git a/resources/android/icon/drawable-xhdpi-icon.png b/resources/android/icon/drawable-xhdpi-icon.png new file mode 100755 index 0000000..6f7a767 Binary files /dev/null and b/resources/android/icon/drawable-xhdpi-icon.png differ diff --git a/resources/android/icon/drawable-xxhdpi-icon.png b/resources/android/icon/drawable-xxhdpi-icon.png new file mode 100755 index 0000000..f714a3c Binary files /dev/null and b/resources/android/icon/drawable-xxhdpi-icon.png differ diff --git a/resources/android/icon/drawable-xxxhdpi-icon.png b/resources/android/icon/drawable-xxxhdpi-icon.png new file mode 100755 index 0000000..a2f7c2f Binary files /dev/null and b/resources/android/icon/drawable-xxxhdpi-icon.png differ diff --git a/resources/android/splash/drawable-land-hdpi-screen.png b/resources/android/splash/drawable-land-hdpi-screen.png new file mode 100755 index 0000000..cfa8f7a Binary files /dev/null and b/resources/android/splash/drawable-land-hdpi-screen.png differ diff --git a/resources/android/splash/drawable-land-ldpi-screen.png b/resources/android/splash/drawable-land-ldpi-screen.png new file mode 100755 index 0000000..7581b94 Binary files /dev/null and b/resources/android/splash/drawable-land-ldpi-screen.png differ diff --git a/resources/android/splash/drawable-land-mdpi-screen.png b/resources/android/splash/drawable-land-mdpi-screen.png new file mode 100755 index 0000000..8dfcf53 Binary files /dev/null and b/resources/android/splash/drawable-land-mdpi-screen.png differ diff --git a/resources/android/splash/drawable-land-xhdpi-screen.png b/resources/android/splash/drawable-land-xhdpi-screen.png new file mode 100755 index 0000000..d4ad6c5 Binary files /dev/null and b/resources/android/splash/drawable-land-xhdpi-screen.png differ diff --git a/resources/android/splash/drawable-land-xxhdpi-screen.png b/resources/android/splash/drawable-land-xxhdpi-screen.png new file mode 100755 index 0000000..c0f7da0 Binary files /dev/null and b/resources/android/splash/drawable-land-xxhdpi-screen.png differ diff --git a/resources/android/splash/drawable-land-xxxhdpi-screen.png b/resources/android/splash/drawable-land-xxxhdpi-screen.png new file mode 100755 index 0000000..9322c6a Binary files /dev/null and b/resources/android/splash/drawable-land-xxxhdpi-screen.png differ diff --git a/resources/android/splash/drawable-port-hdpi-screen.png b/resources/android/splash/drawable-port-hdpi-screen.png new file mode 100755 index 0000000..2d18eff Binary files /dev/null and b/resources/android/splash/drawable-port-hdpi-screen.png differ diff --git a/resources/android/splash/drawable-port-ldpi-screen.png b/resources/android/splash/drawable-port-ldpi-screen.png new file mode 100755 index 0000000..8d886b8 Binary files /dev/null and b/resources/android/splash/drawable-port-ldpi-screen.png differ diff --git a/resources/android/splash/drawable-port-mdpi-screen.png b/resources/android/splash/drawable-port-mdpi-screen.png new file mode 100755 index 0000000..0219122 Binary files /dev/null and b/resources/android/splash/drawable-port-mdpi-screen.png differ diff --git a/resources/android/splash/drawable-port-xhdpi-screen.png b/resources/android/splash/drawable-port-xhdpi-screen.png new file mode 100755 index 0000000..3e5f323 Binary files /dev/null and b/resources/android/splash/drawable-port-xhdpi-screen.png differ diff --git a/resources/android/splash/drawable-port-xxhdpi-screen.png b/resources/android/splash/drawable-port-xxhdpi-screen.png new file mode 100755 index 0000000..022ba6d Binary files /dev/null and b/resources/android/splash/drawable-port-xxhdpi-screen.png differ diff --git a/resources/android/splash/drawable-port-xxxhdpi-screen.png b/resources/android/splash/drawable-port-xxxhdpi-screen.png new file mode 100755 index 0000000..aac4bb5 Binary files /dev/null and b/resources/android/splash/drawable-port-xxxhdpi-screen.png differ diff --git a/resources/android/xml/network_security_config.xml b/resources/android/xml/network_security_config.xml new file mode 100755 index 0000000..de61259 --- /dev/null +++ b/resources/android/xml/network_security_config.xml @@ -0,0 +1,6 @@ + + + + localhost + + diff --git a/resources/icon.png b/resources/icon.png new file mode 100755 index 0000000..dcf74cd Binary files /dev/null and b/resources/icon.png differ diff --git a/resources/icon.png.md5 b/resources/icon.png.md5 new file mode 100755 index 0000000..89630b9 --- /dev/null +++ b/resources/icon.png.md5 @@ -0,0 +1 @@ +b7a37b9afefb48f35e1ced9da6791713 \ No newline at end of file diff --git a/resources/ios/icon/icon-1024.png b/resources/ios/icon/icon-1024.png new file mode 100755 index 0000000..be633f4 Binary files /dev/null and b/resources/ios/icon/icon-1024.png differ diff --git a/resources/ios/icon/icon-20.png b/resources/ios/icon/icon-20.png new file mode 100755 index 0000000..08993e0 Binary files /dev/null and b/resources/ios/icon/icon-20.png differ diff --git a/resources/ios/icon/icon-20@2x.png b/resources/ios/icon/icon-20@2x.png new file mode 100755 index 0000000..acbecd2 Binary files /dev/null and b/resources/ios/icon/icon-20@2x.png differ diff --git a/resources/ios/icon/icon-20@3x.png b/resources/ios/icon/icon-20@3x.png new file mode 100755 index 0000000..00de715 Binary files /dev/null and b/resources/ios/icon/icon-20@3x.png differ diff --git a/resources/ios/icon/icon-24@2x.png b/resources/ios/icon/icon-24@2x.png new file mode 100755 index 0000000..4b455d3 Binary files /dev/null and b/resources/ios/icon/icon-24@2x.png differ diff --git a/resources/ios/icon/icon-27.5@2x.png b/resources/ios/icon/icon-27.5@2x.png new file mode 100755 index 0000000..c623f27 Binary files /dev/null and b/resources/ios/icon/icon-27.5@2x.png differ diff --git a/resources/ios/icon/icon-29.png b/resources/ios/icon/icon-29.png new file mode 100755 index 0000000..8a55da5 Binary files /dev/null and b/resources/ios/icon/icon-29.png differ diff --git a/resources/ios/icon/icon-29@2x.png b/resources/ios/icon/icon-29@2x.png new file mode 100755 index 0000000..185277b Binary files /dev/null and b/resources/ios/icon/icon-29@2x.png differ diff --git a/resources/ios/icon/icon-29@3x.png b/resources/ios/icon/icon-29@3x.png new file mode 100755 index 0000000..3393f84 Binary files /dev/null and b/resources/ios/icon/icon-29@3x.png differ diff --git a/resources/ios/icon/icon-40.png b/resources/ios/icon/icon-40.png new file mode 100755 index 0000000..acbecd2 Binary files /dev/null and b/resources/ios/icon/icon-40.png differ diff --git a/resources/ios/icon/icon-40@2x.png b/resources/ios/icon/icon-40@2x.png new file mode 100755 index 0000000..61d82a7 Binary files /dev/null and b/resources/ios/icon/icon-40@2x.png differ diff --git a/resources/ios/icon/icon-40@3x.png b/resources/ios/icon/icon-40@3x.png new file mode 100755 index 0000000..cc349de Binary files /dev/null and b/resources/ios/icon/icon-40@3x.png differ diff --git a/resources/ios/icon/icon-44@2x.png b/resources/ios/icon/icon-44@2x.png new file mode 100755 index 0000000..00a2ff3 Binary files /dev/null and b/resources/ios/icon/icon-44@2x.png differ diff --git a/resources/ios/icon/icon-50.png b/resources/ios/icon/icon-50.png new file mode 100755 index 0000000..9e9a5c1 Binary files /dev/null and b/resources/ios/icon/icon-50.png differ diff --git a/resources/ios/icon/icon-50@2x.png b/resources/ios/icon/icon-50@2x.png new file mode 100755 index 0000000..fe547b1 Binary files /dev/null and b/resources/ios/icon/icon-50@2x.png differ diff --git a/resources/ios/icon/icon-60.png b/resources/ios/icon/icon-60.png new file mode 100755 index 0000000..00de715 Binary files /dev/null and b/resources/ios/icon/icon-60.png differ diff --git a/resources/ios/icon/icon-60@2x.png b/resources/ios/icon/icon-60@2x.png new file mode 100755 index 0000000..cc349de Binary files /dev/null and b/resources/ios/icon/icon-60@2x.png differ diff --git a/resources/ios/icon/icon-60@3x.png b/resources/ios/icon/icon-60@3x.png new file mode 100755 index 0000000..3898828 Binary files /dev/null and b/resources/ios/icon/icon-60@3x.png differ diff --git a/resources/ios/icon/icon-72.png b/resources/ios/icon/icon-72.png new file mode 100755 index 0000000..3f84fc1 Binary files /dev/null and b/resources/ios/icon/icon-72.png differ diff --git a/resources/ios/icon/icon-72@2x.png b/resources/ios/icon/icon-72@2x.png new file mode 100755 index 0000000..391b4af Binary files /dev/null and b/resources/ios/icon/icon-72@2x.png differ diff --git a/resources/ios/icon/icon-76.png b/resources/ios/icon/icon-76.png new file mode 100755 index 0000000..971034a Binary files /dev/null and b/resources/ios/icon/icon-76.png differ diff --git a/resources/ios/icon/icon-76@2x.png b/resources/ios/icon/icon-76@2x.png new file mode 100755 index 0000000..b538930 Binary files /dev/null and b/resources/ios/icon/icon-76@2x.png differ diff --git a/resources/ios/icon/icon-83.5@2x.png b/resources/ios/icon/icon-83.5@2x.png new file mode 100755 index 0000000..5f8dbb2 Binary files /dev/null and b/resources/ios/icon/icon-83.5@2x.png differ diff --git a/resources/ios/icon/icon-86@2x.png b/resources/ios/icon/icon-86@2x.png new file mode 100755 index 0000000..9798fc2 Binary files /dev/null and b/resources/ios/icon/icon-86@2x.png differ diff --git a/resources/ios/icon/icon-98@2x.png b/resources/ios/icon/icon-98@2x.png new file mode 100755 index 0000000..5ebd9db Binary files /dev/null and b/resources/ios/icon/icon-98@2x.png differ diff --git a/resources/ios/icon/icon-small.png b/resources/ios/icon/icon-small.png new file mode 100755 index 0000000..8a55da5 Binary files /dev/null and b/resources/ios/icon/icon-small.png differ diff --git a/resources/ios/icon/icon-small@2x.png b/resources/ios/icon/icon-small@2x.png new file mode 100755 index 0000000..185277b Binary files /dev/null and b/resources/ios/icon/icon-small@2x.png differ diff --git a/resources/ios/icon/icon-small@3x.png b/resources/ios/icon/icon-small@3x.png new file mode 100755 index 0000000..3393f84 Binary files /dev/null and b/resources/ios/icon/icon-small@3x.png differ diff --git a/resources/ios/icon/icon.png b/resources/ios/icon/icon.png new file mode 100755 index 0000000..a90d46c Binary files /dev/null and b/resources/ios/icon/icon.png differ diff --git a/resources/ios/icon/icon@2x.png b/resources/ios/icon/icon@2x.png new file mode 100755 index 0000000..946c6ce Binary files /dev/null and b/resources/ios/icon/icon@2x.png differ diff --git a/resources/ios/splash/Default-2436h.png b/resources/ios/splash/Default-2436h.png new file mode 100755 index 0000000..bdbeb9d Binary files /dev/null and b/resources/ios/splash/Default-2436h.png differ diff --git a/resources/ios/splash/Default-568h@2x~iphone.png b/resources/ios/splash/Default-568h@2x~iphone.png new file mode 100755 index 0000000..5e9edf6 Binary files /dev/null and b/resources/ios/splash/Default-568h@2x~iphone.png differ diff --git a/resources/ios/splash/Default-667h.png b/resources/ios/splash/Default-667h.png new file mode 100755 index 0000000..2843fb3 Binary files /dev/null and b/resources/ios/splash/Default-667h.png differ diff --git a/resources/ios/splash/Default-736h.png b/resources/ios/splash/Default-736h.png new file mode 100755 index 0000000..21f2d42 Binary files /dev/null and b/resources/ios/splash/Default-736h.png differ diff --git a/resources/ios/splash/Default-Landscape-2436h.png b/resources/ios/splash/Default-Landscape-2436h.png new file mode 100755 index 0000000..763ae78 Binary files /dev/null and b/resources/ios/splash/Default-Landscape-2436h.png differ diff --git a/resources/ios/splash/Default-Landscape-736h.png b/resources/ios/splash/Default-Landscape-736h.png new file mode 100755 index 0000000..9c069f7 Binary files /dev/null and b/resources/ios/splash/Default-Landscape-736h.png differ diff --git a/resources/ios/splash/Default-Landscape@2x~ipad.png b/resources/ios/splash/Default-Landscape@2x~ipad.png new file mode 100755 index 0000000..35407a9 Binary files /dev/null and b/resources/ios/splash/Default-Landscape@2x~ipad.png differ diff --git a/resources/ios/splash/Default-Landscape@~ipadpro.png b/resources/ios/splash/Default-Landscape@~ipadpro.png new file mode 100755 index 0000000..75de9e0 Binary files /dev/null and b/resources/ios/splash/Default-Landscape@~ipadpro.png differ diff --git a/resources/ios/splash/Default-Landscape~ipad.png b/resources/ios/splash/Default-Landscape~ipad.png new file mode 100755 index 0000000..b74bbf6 Binary files /dev/null and b/resources/ios/splash/Default-Landscape~ipad.png differ diff --git a/resources/ios/splash/Default-Portrait@2x~ipad.png b/resources/ios/splash/Default-Portrait@2x~ipad.png new file mode 100755 index 0000000..d0c33f7 Binary files /dev/null and b/resources/ios/splash/Default-Portrait@2x~ipad.png differ diff --git a/resources/ios/splash/Default-Portrait@~ipadpro.png b/resources/ios/splash/Default-Portrait@~ipadpro.png new file mode 100755 index 0000000..363dd1c Binary files /dev/null and b/resources/ios/splash/Default-Portrait@~ipadpro.png differ diff --git a/resources/ios/splash/Default-Portrait~ipad.png b/resources/ios/splash/Default-Portrait~ipad.png new file mode 100755 index 0000000..aad1deb Binary files /dev/null and b/resources/ios/splash/Default-Portrait~ipad.png differ diff --git a/resources/ios/splash/Default@2x~iphone.png b/resources/ios/splash/Default@2x~iphone.png new file mode 100755 index 0000000..f0f16ef Binary files /dev/null and b/resources/ios/splash/Default@2x~iphone.png differ diff --git a/resources/ios/splash/Default@2x~universal~anyany.png b/resources/ios/splash/Default@2x~universal~anyany.png new file mode 100755 index 0000000..c8fcc8f Binary files /dev/null and b/resources/ios/splash/Default@2x~universal~anyany.png differ diff --git a/resources/ios/splash/Default~iphone.png b/resources/ios/splash/Default~iphone.png new file mode 100755 index 0000000..e5129fd Binary files /dev/null and b/resources/ios/splash/Default~iphone.png differ diff --git a/resources/splash.png b/resources/splash.png new file mode 100755 index 0000000..cac99c2 Binary files /dev/null and b/resources/splash.png differ diff --git a/resources/splash.png.md5 b/resources/splash.png.md5 new file mode 100755 index 0000000..c7eacfa --- /dev/null +++ b/resources/splash.png.md5 @@ -0,0 +1 @@ +50007304f4721190957196d17b2ae952 \ No newline at end of file diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts new file mode 100755 index 0000000..6840440 --- /dev/null +++ b/src/app/app-routing.module.ts @@ -0,0 +1,59 @@ +import { NgModule } from '@angular/core'; +import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; +// import { PdListPage } from './pages/pd-list/pd-list'; +// import { AuthPage } from './pages/auth/auth'; +// import { CompleteListPage } from './pages/complete-list/complete-list'; +// import { InputPage } from './pages/input/input'; +import { PdComponent } from './pages/pd/pd-component/pd.component'; +import { AuthenticationComponent } from './pages/authentication/authentication.component'; +import { AuthGuard } from './services/_guard/auth.guard'; +// import { MapAddressPage } from './pages/map-address/map-address'; +// import { OtpPage } from './pages/otp/otp'; +// import { PdAllocationPage } from './pages/pd-allocation/pd-allocation'; +// import { PdGeneralImagesPage } from './pages/pd-general-images/pd-general-images'; +// import { PdQuestionPage } from './pages/pd-question/pd-question'; + +const routes: Routes = [ + { + path: '', + redirectTo: 'authentication', + pathMatch: 'full' + }, + { + path : '', + component:PdComponent, + canActivate:[AuthGuard], + children :[ + { + path:'pd', + loadChildren: () => import('./pages/pd/pd.module').then(m=>m.PdModule), + } + ] + }, + { + path : '', + component:AuthenticationComponent, + children:[ + { + path : 'authentication', + loadChildren:()=> import('./pages/authentication/authentication.module').then(m=>m.AuthenticationModule) + } + ] + }, + { + path: 'home', + loadChildren: () => import('./home/home.module').then(m => m.HomePageModule) + }, + { + path: 'list', + loadChildren: () => import('./list/list.module').then(m => m.ListPageModule) + } +]; + +@NgModule({ + imports: [ + RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) + ], + exports: [RouterModule] +}) +export class AppRoutingModule {} diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100755 index 0000000..017a083 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1,58 @@ + + + + + \ No newline at end of file diff --git a/src/app/app.component.scss b/src/app/app.component.scss new file mode 100755 index 0000000..e69de29 diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts new file mode 100755 index 0000000..dbbfed5 --- /dev/null +++ b/src/app/app.component.spec.ts @@ -0,0 +1,67 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { TestBed, async } from '@angular/core/testing'; + +import { Platform } from '@ionic/angular'; +import { SplashScreen } from '@ionic-native/splash-screen/ngx'; +import { StatusBar } from '@ionic-native/status-bar/ngx'; +import { RouterTestingModule } from '@angular/router/testing'; + +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + + let statusBarSpy, splashScreenSpy, platformReadySpy, platformSpy; + + beforeEach(async(() => { + statusBarSpy = jasmine.createSpyObj('StatusBar', ['styleDefault']); + splashScreenSpy = jasmine.createSpyObj('SplashScreen', ['hide']); + platformReadySpy = Promise.resolve(); + platformSpy = jasmine.createSpyObj('Platform', { ready: platformReadySpy }); + + TestBed.configureTestingModule({ + declarations: [AppComponent], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + providers: [ + { provide: StatusBar, useValue: statusBarSpy }, + { provide: SplashScreen, useValue: splashScreenSpy }, + { provide: Platform, useValue: platformSpy }, + ], + imports: [ RouterTestingModule.withRoutes([])], + }).compileComponents(); + })); + + it('should create the app', async () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + }); + + it('should initialize the app', async () => { + TestBed.createComponent(AppComponent); + expect(platformSpy.ready).toHaveBeenCalled(); + await platformReadySpy; + expect(statusBarSpy.styleDefault).toHaveBeenCalled(); + expect(splashScreenSpy.hide).toHaveBeenCalled(); + }); + + it('should have menu labels', async () => { + const fixture = await TestBed.createComponent(AppComponent); + await fixture.detectChanges(); + const app = fixture.nativeElement; + const menuItems = app.querySelectorAll('ion-label'); + expect(menuItems.length).toEqual(2); + expect(menuItems[0].textContent).toContain('Home'); + expect(menuItems[1].textContent).toContain('List'); + }); + + it('should have urls', async () => { + const fixture = await TestBed.createComponent(AppComponent); + await fixture.detectChanges(); + const app = fixture.nativeElement; + const menuItems = app.querySelectorAll('ion-item'); + expect(menuItems.length).toEqual(2); + expect(menuItems[0].getAttribute('ng-reflect-router-link')).toEqual('/home'); + expect(menuItems[1].getAttribute('ng-reflect-router-link')).toEqual('/list'); + }); + +}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100755 index 0000000..6c587c9 --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,281 @@ +import { Component } from '@angular/core'; + +import { Platform, NavController, AlertController } from '@ionic/angular'; +import { SplashScreen } from '@ionic-native/splash-screen/ngx'; +import { StatusBar } from '@ionic-native/status-bar/ngx'; +import { CognitoServiceProvider } from './services/aws-service/cognito.service'; +import { environment } from 'src/environments/environment'; +import { AwsServiceProvider } from './services/aws-service/aws-service'; +import { PushObject, PushOptions, Push } from '@ionic-native/push/ngx'; +import { ToastProvider } from './services/common-provider/toast'; +import { PdtriggerProvider } from './services/pdtrigger/pdtrigger'; +import { Router } from '@angular/router'; +import { AppVersion } from '@ionic-native/app-version/ngx'; +import { Market } from '@ionic-native/market/ngx'; +import { EventsService } from './services/common-provider/events/events.service'; +import { ConstantsProvider } from './services/constants/constants'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.scss'] +}) +export class AppComponent { + public appPages = [ + { + title: 'Home', + url: '/home', + icon: 'home' + }, + { + title: 'List', + url: '/list', + icon: 'list' + } + ]; + curr_environmnet: any; + userDetails: any; + user_id: any; + notificationAccess: boolean=false; + userAccess: boolean; + alertShown: boolean=false; + app_version: string; + + constructor( + private platform: Platform, + private splashScreen: SplashScreen, + private statusBar: StatusBar, + private cognito:CognitoServiceProvider, + private navCtrl:NavController, + private aws:AwsServiceProvider, + private push:Push, + private toastProvider:ToastProvider, + private pdtrigger:PdtriggerProvider, + private router:Router, + private alertCtrl:AlertController, + private appVersion:AppVersion, + private marketOpener:Market, + private toast:ToastProvider, + private eventService:EventsService, + private constantProvider:ConstantsProvider + ) { + this.initializeApp(); + } + + initializeApp() { + this.platform.ready().then(() => { + this.statusBar.styleLightContent(); + this.splashScreen.hide(); + // if(this.platform.is('cordova')){ + this.backButtonEvent() + // } + this.appVersion.getVersionNumber().then(version_num=>{ + this.app_version=version_num + },err=>{ + console.log("Unable to get Version",err) + }) + }); + this.checkAuthentication() + + } + checkAuthentication(){ + this.curr_environmnet = this.constantProvider.environment() + this.cognito.getAccessToken().then(()=>{ + + if(this.curr_environmnet.environment_name == 'production'){ + this.checkAppVersion(); + } + // Ok we have an URI and something in the storage, we could recover + this.getuserDetails(); + this.getCommonSettings() + // this.rootPage = AuthPage + if(this.platform.is('cordova')){ + this.navCtrl.navigateRoot('/authentication/AuthPage') + } + else{ + // this.navCtrl.navigateRoot('/pd/pd-questions/all-ques') + // this.navCtrl.navigateRoot('/pd') + this.navCtrl.navigateRoot('/authentication/AuthPage') + } + // console.log("Crasshed apk",myObject,this.Camerauri); + + }).catch(()=>{ + setTimeout(() => { + this.navCtrl.navigateRoot('/') + // this.unregisterNotification() + }, 1000); + }); + } + getCommonSettings(){ + // getCommonConfig + this.pdtrigger.getCommonConfig().subscribe(res=>{ + if(res['dataStatus']){ + localStorage.setItem('commonConfig',JSON.stringify(res['records'])) + } + }) + } + getuserDetails() + { + this.userDetails='' + + let userid = this.aws.getlocale(); + this.user_id=userid + this.aws.getuserprofile(userid).subscribe(res=>{ + this.userDetails = res; + if(this.userDetails.dataStatus == true) + { + this.notificationAccess=true + // console.log("Inside user details notification access value",this.notificationAccess) + this.userAccess = true; + this.userDetails = this.userDetails.records[0]; + localStorage.setItem("pd_user_details",JSON.stringify(this.userDetails)) + this.notification() + + } + + }); + } + backButtonEvent() { + + if (this.platform.is('android')) { + this.platform.backButton.subscribe(() => { + console.log("route>>>>",this.router,this.router.navigated) + console.log('this.router.url', this.router.url); + if ((this.router.url === '/authentication/login' || this.router.url === '/authentication/AuthPage' || this.router.url === '/pd/pd-list') && this.alertShown == false) { + this.alertShown=true + // navigator['app'].exitApp(); + this.exitAlert().then(res=>{}) + } + else if(this.router.url === '/pd/pd-questions/PdQuestionCategoryPage'){ + this.navCtrl.navigateRoot('/pd') + } + else{ + this.navCtrl.pop() + } + }); + } + } + notification(){ + // this.nav.setRoot(this.nav.getActive().component); + this.push.hasPermission().then((res: any) => { + + if (res.isEnabled) { + console.log('We have permission to send push notifications'); + } else { + console.log('We do not have permission to send push notifications'); + } + + }); + const option:PushOptions={ + android:{ + // senderID:'893175418100' + senderID:'906855209078', + sound: true, + vibrate: true, + }, + ios: { + alert: 'true', + badge: true, + sound: 'false' + }, + windows: {}, + browser: { + pushServiceURL: 'http://push.api.phonegap.com/v1/push' + } + } + const pushObject:PushObject=this.push.init(option); + if(this.notificationAccess){ + + pushObject.on('notification').subscribe((notification: any) =>{ + console.log('Received a notification', notification) + if(notification.additionalData.foreground){ + // this.event.publish('alert',notification); + this.toastProvider.setAlertwithButton(notification) + } + else{ + // this.event.publish('notify',notification); + this.eventService.publishNotifyEvent(notification); + //this.nav.setRoot(PdListPage,{notify:'Via Notification'}); + // this.rootPage=PdListPage + this.navCtrl.navigateRoot('/pd') + } + }); + } + else{ + console.log("Sorry you dont have notification access"); + } + + + pushObject.on('registration').subscribe((registration: any) => { + console.log('Device registered', registration) + let data:any={"fk_user_id":this.user_id,"token":registration.registrationId,"client":"MOB"} + console.log("update notification data api",data); + this.pdtrigger.updateNotificationToken(data).subscribe(res=>{ + if(res['dataStatus']){ + // console.log("Token Sended Successfully",res) + } + },err=>{ + console.log("Error",err); + }) + + }); + + pushObject.on('error').subscribe(error => console.error('Error with Push plugin', error)); + + } + async exitAlert(){ + + //this.presentConfirm(); + let alert=await this.alertCtrl.create({ + header:'Confirm Exit', + message:'Do You Want Exit ?', + buttons:[ + { + text:'Cancel', + role:'cancel', + handler:()=>{ + // console.log("Cancel clicked"); + this.alertShown=false + alert.dismiss() + } + }, + { + text:'Yes', + role:'yes', + handler:()=>{ + // console.log("Exit"); + navigator['app'].exitApp() + } + } + ] + }); + await alert.present(); + this.alertShown=true +} +checkAppVersion(){ + if(this.curr_environmnet.environment_name == 'production'){ + this.pdtrigger.checkAppVersion().subscribe(result=>{ + if(result['dataStatus']){ + console.log("app versions",this.app_version,result); + console.log(result['records'][0].version.toString()) + if(this.app_version != result['records'][0].version.toString()){ + return new Promise((resolve,reject)=>{ + this.toast.setAlertwithOKButton("Update Available","A new version of App is available Please download it..!").then(data=>{ + if(data == false){ + navigator['app'].exitApp() + reject() + return true; + } + else{ + this.marketOpener.open('com.sineedge.pdgvendor'); + navigator['app'].exitApp() + } + }) + + }) + } + } + }) + } + } +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts new file mode 100755 index 0000000..76712a5 --- /dev/null +++ b/src/app/app.module.ts @@ -0,0 +1,89 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { RouteReuseStrategy } from '@angular/router'; + +import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; +import { SplashScreen } from '@ionic-native/splash-screen/ngx'; +import { StatusBar } from '@ionic-native/status-bar/ngx'; + +import { AppComponent } from './app.component'; +import { AppRoutingModule } from './app-routing.module'; +import { TestPipe } from './pipes/test.pipe'; +import { PdComponent } from './pages/pd/pd-component/pd.component'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http'; +import { ReqTokenInterceptor } from './services/_guard/req-token.interceptor'; +import { Geolocation } from '@ionic-native/geolocation/ngx'; +import { AwsServiceProvider } from './services/aws-service/aws-service'; +import { ToastProvider } from './services/common-provider/toast'; +import { ConstantsProvider } from './services/constants/constants'; +import { CognitoServiceProvider } from './services/aws-service/cognito.service'; +import { PdtriggerProvider } from './services/pdtrigger/pdtrigger'; +import { SQLite } from '@ionic-native/sqlite/ngx'; +import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; +import {BackgroundGeolocation} from '@ionic-native/background-geolocation/ngx'; +import { QuestionCategoryProvider } from './services/question-category/question-category'; +import { CameraProvider } from './services/common-provider/camera'; +import { PdPipe } from './pipes/pd/pd'; +import { LocationAccuracy } from '@ionic-native/location-accuracy/ngx'; +import { LoadingProvider } from './services/common-provider/loading'; +import { DatabaseProvider } from './services/database/database'; +import { StorageProvider } from './services/storage/storage'; +import { Market } from '@ionic-native/market/ngx'; +import { FingerprintAIO } from '@ionic-native/fingerprint-aio/ngx'; +import {Camera} from '@ionic-native/camera/ngx' +import { IonicStorageModule } from '@ionic/storage'; +import { CacheModule } from 'ionic-cache'; +import { FormsModule } from '@angular/forms'; +import { CommonModule } from '@angular/common'; +import { AuthenticationComponent } from './pages/authentication/authentication.component'; +import { Push } from '@ionic-native/push/ngx'; +import { AppVersion } from '@ionic-native/app-version/ngx'; +import { LaunchNavigator } from '@ionic-native/launch-navigator/ngx'; +import { GpsService } from './services/common-provider/gps.service'; +import { DocumentScanner } from '@ionic-native/document-scanner/ngx'; +import { ImageNameModule } from './pages/pd/pd.module'; +import { File } from '@ionic-native/file/ngx'; +import { Diagnostic } from '@ionic-native/diagnostic/ngx'; +import { HideHeaderDirective } from './shared/directives/hide-header.directive'; + +@NgModule({ + declarations: [AppComponent, TestPipe,PdComponent,AuthenticationComponent,], + entryComponents: [], + imports: [ + BrowserModule, + FormsModule, + CommonModule, + IonicModule.forRoot(), + AppRoutingModule, + BrowserAnimationsModule, + HttpClientModule, + IonicStorageModule.forRoot(), + CacheModule.forRoot(), + ImageNameModule + ], + providers: [ + StatusBar, + SplashScreen,ReqTokenInterceptor,Geolocation,AwsServiceProvider,ToastProvider, + ConstantsProvider,CognitoServiceProvider,SplashScreen,PdtriggerProvider,FingerprintAIO,SQLite,AndroidPermissions,BackgroundGeolocation, + + Camera, + PdPipe,LocationAccuracy, + LoadingProvider,Geolocation,LaunchNavigator, + DatabaseProvider, + StorageProvider, + DocumentScanner, + Diagnostic, + Market, + Push,AppVersion,GpsService, + { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, + { + provide:HTTP_INTERCEPTORS, + useClass: ReqTokenInterceptor, + multi: true + }, + File + ], + bootstrap: [AppComponent] +}) +export class AppModule {} diff --git a/src/app/home/home.module.ts b/src/app/home/home.module.ts new file mode 100755 index 0000000..bcceb57 --- /dev/null +++ b/src/app/home/home.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IonicModule } from '@ionic/angular'; +import { RouterModule } from '@angular/router'; + +import { HomePage } from './home.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + RouterModule.forChild([ + { + path: '', + component: HomePage + } + ]) + ], + declarations: [HomePage] +}) +export class HomePageModule {} diff --git a/src/app/home/home.page.html b/src/app/home/home.page.html new file mode 100755 index 0000000..29ca99b --- /dev/null +++ b/src/app/home/home.page.html @@ -0,0 +1,48 @@ + + + + + + + Home + + + + + + + + + Get Started + Welcome to Ionic + + +

+ Now that your app has been created, you'll want to start building out features + and components. Check out some of the resources below for next steps. +

+
+
+ + + + Resources + + + + Ionic Documentation + + + + Scaffold Out Your App + + + + Change Your App Layout + + + + Theme Your App + + +
diff --git a/src/app/home/home.page.scss b/src/app/home/home.page.scss new file mode 100755 index 0000000..0ddc9e8 --- /dev/null +++ b/src/app/home/home.page.scss @@ -0,0 +1,4 @@ +.welcome-card img { + max-height: 35vh; + overflow: hidden; +} diff --git a/src/app/home/home.page.spec.ts b/src/app/home/home.page.spec.ts new file mode 100755 index 0000000..bfaaed7 --- /dev/null +++ b/src/app/home/home.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { HomePage } from './home.page'; + +describe('HomePage', () => { + let component: HomePage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [HomePage], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(HomePage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts new file mode 100755 index 0000000..83522d5 --- /dev/null +++ b/src/app/home/home.page.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-home', + templateUrl: 'home.page.html', + styleUrls: ['home.page.scss'], +}) +export class HomePage { + + constructor() {} + +} diff --git a/src/app/list/list.module.ts b/src/app/list/list.module.ts new file mode 100755 index 0000000..e8b3a79 --- /dev/null +++ b/src/app/list/list.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IonicModule } from '@ionic/angular'; +import { RouterModule } from '@angular/router'; + +import { ListPage } from './list.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + RouterModule.forChild([ + { + path: '', + component: ListPage + } + ]) + ], + declarations: [ListPage] +}) +export class ListPageModule {} diff --git a/src/app/list/list.page.html b/src/app/list/list.page.html new file mode 100755 index 0000000..672d72d --- /dev/null +++ b/src/app/list/list.page.html @@ -0,0 +1,27 @@ + + + + + + + List + + + + + + + + + {{item.title}} +
+ {{item.note}} +
+
+
+ +
diff --git a/src/app/list/list.page.scss b/src/app/list/list.page.scss new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/src/app/list/list.page.scss @@ -0,0 +1 @@ + diff --git a/src/app/list/list.page.spec.ts b/src/app/list/list.page.spec.ts new file mode 100755 index 0000000..f27bc36 --- /dev/null +++ b/src/app/list/list.page.spec.ts @@ -0,0 +1,32 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { ListPage } from './list.page'; + +describe('ListPage', () => { + let component: ListPage; + let fixture: ComponentFixture; + let listPage: HTMLElement; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ListPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(ListPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should have a list of 10 elements', () => { + listPage = fixture.nativeElement; + const items = listPage.querySelectorAll('ion-item'); + expect(items.length).toEqual(10); + }); + +}); diff --git a/src/app/list/list.page.ts b/src/app/list/list.page.ts new file mode 100755 index 0000000..6cdaaa9 --- /dev/null +++ b/src/app/list/list.page.ts @@ -0,0 +1,39 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-list', + templateUrl: 'list.page.html', + styleUrls: ['list.page.scss'] +}) +export class ListPage implements OnInit { + private selectedItem: any; + private icons = [ + 'flask', + 'wifi', + 'beer', + 'football', + 'basketball', + 'paper-plane', + 'american-football', + 'boat', + 'bluetooth', + 'build' + ]; + public items: Array<{ title: string; note: string; icon: string }> = []; + constructor() { + for (let i = 1; i < 11; i++) { + this.items.push({ + title: 'Item ' + i, + note: 'This is item #' + i, + icon: this.icons[Math.floor(Math.random() * this.icons.length)] + }); + } + } + + ngOnInit() { + } + // add back when alpha.4 is out + // navigate(item) { + // this.router.navigate(['/list', JSON.stringify(item)]); + // } +} diff --git a/src/app/pages/authentication/auth/auth.html b/src/app/pages/authentication/auth/auth.html new file mode 100755 index 0000000..f015cf0 --- /dev/null +++ b/src/app/pages/authentication/auth/auth.html @@ -0,0 +1,76 @@ + + + + + + + + + + + + Circle Image + + + + + +

PIN

+
+
+ + + + + + + + +
+ + + +
+
+
+ + + + + + +
+ + + + + + + Circle Image + + + + + +

PIN

+
+
+ + + + + + + +
+ + + + + + + + +
+
diff --git a/src/app/pages/authentication/auth/auth.scss b/src/app/pages/authentication/auth/auth.scss new file mode 100755 index 0000000..a81b64b --- /dev/null +++ b/src/app/pages/authentication/auth/auth.scss @@ -0,0 +1,40 @@ +// page-auth { + ion-content{ + --background: #eee; + } + .mat-card{ + width: 80%; + margin-left: 10%; + margin-top: 35%; + border-radius: 10px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + h4{ + font-weight: normal; + } + button.mat-primary { + background-color: #E00201 !important; + } + .mat-raised-button{ + border-radius: 30px; + padding: 19px 45px; + line-height: 0px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + .rounded-circle { + border-radius: 50%!important; + + } + .img-fluid{ + max-width: 40%; + height: auto; + margin-top:-70px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2); + } + ion-icon{ + font-size:2.2em; + } + input.mat-input-element { + -webkit-text-security: disc; + } +// } \ No newline at end of file diff --git a/src/app/pages/authentication/auth/auth.ts b/src/app/pages/authentication/auth/auth.ts new file mode 100755 index 0000000..e724414 --- /dev/null +++ b/src/app/pages/authentication/auth/auth.ts @@ -0,0 +1,162 @@ +import { Component } from '@angular/core'; +import { NavController, NavParams, MenuController,ToastController } from '@ionic/angular'; +import {Validators, FormBuilder, FormGroup, FormArray } from '@angular/forms'; +import { CognitoServiceProvider } from '../../../services/aws-service/cognito.service'; +import { ToastProvider } from '../../../services/common-provider/toast'; +import { FingerprintAIO, FingerprintOptions } from '@ionic-native/fingerprint-aio/ngx'; +import { AwsServiceProvider } from '../../../services/aws-service/aws-service'; + +import { LoadingProvider } from '../../../services/common-provider/loading'; +import { ConstantsProvider } from '../../../services/constants/constants'; +/** + * Generated class for the AuthPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + +@Component({ + selector: 'page-auth', + templateUrl: 'auth.html', + styleUrls:['auth.scss'] +}) +export class AuthPage { + pinAccess: any; + newpindetails: any; + userDetails: any=[]; +pin:any; + mpinaccess:boolean =false; + newpassword:any; + ConfirmPassword:any; + commonImage:any; + constructor(public navCtrl: NavController,public Menu:MenuController,public fb:FormBuilder,public shared:CognitoServiceProvider,public toast:ToastProvider,private faio:FingerprintAIO,public aws:AwsServiceProvider,public loadingCtrl:LoadingProvider,public commonconstant:ConstantsProvider) { + this.commonImage = this.commonconstant.commonimage; + this.shared.refresh(); + this.getuserDetails(); + + + + } + + ngOnInit() { + console.log('ngOnInit AuthPage'); + } + ionViewDidEnter(){ + this.Menu.enable(false); + } + ionViewWillLeave(){ + this.Menu.enable(true); + } + getuserDetails() + { + this.loadingCtrl.pdloader('loading...'); + let userid = this.aws.getlocale(); + this.aws.getuserprofile(userid).subscribe(res=>{ + this.userDetails = res; + if(this.userDetails.dataStatus == true) + { + this.loadingCtrl.dismissLoader(); + this.userDetails = this.userDetails.records; + if(this.userDetails[0].role_name =="PD Executive" || this.userDetails[0].role_name == "PD Officer"){ + //localStorage.setItem('userDetails',JSON.stringify(this.userDetails[0])); + if(this.userDetails[0].mpin ==null) + { + + this.mpinaccess = true; + + }else + { + this.mpinaccess = false; + } + }else{ + + this.toast.pdTriggerappmessage('This App only for PD Officers'); + localStorage.clear(); + } + }else{ + this.toast.pdTriggerappmessage(''); + this.loadingCtrl.dismissLoader(); + } + //console.log(this.mpinaccess); + },err=>{ + this.loadingCtrl.dismissLoader(); + }); + } + setnewpin(newpin) + { + console.log("set Pin") + this.aws.userpinupdate(newpin).subscribe(res=> + { + this.newpindetails = res; + if(this.newpindetails.dataStatus == true) + { + this.navCtrl.navigateRoot('/pd'); + } + }) + } + /**Finger print */ + + checkpin(pin) { + console.log("Check pin",pin); + if(pin !='' && pin !=null) + { + if(this.userDetails.length > 0){ + if(this.userDetails[0].mpin == pin) + { + console.log("Entering List page") + this.navCtrl.navigateRoot('/pd'); + }else + { + this.toast.pdTriggerappmessage('Enter The Correct PIN'); + } + } + else{ + this.toast.pdTriggerappmessage("Please check your internet connection") + } + }else + { + this.toast.pdTriggerappmessage('Enter The PIN'); + } + + + + } + + checkfingerprint() + { + // using on ionic 3 + // console.log("Check Finger"); + // this.faio.show({ + // clientId: 'Fingerprint-Demo', + // clientSecret: 'password', // Only Android + // localizedFallbackTitle: 'Use Pin', // Only iOS + // localizedReason: 'Please authenticate', + // disableBackup:true, + // }) + // .then((result: any) => { + // this.navCtrl.navigateRoot('/pd'); + // }) + // .catch((error: any) => { + // this.toast.pdTriggerappmessage('err: '+ error); + // }); + // FOR IONIC 4 + this.faio.show({ + // title: 'Biometric Authentication', // (Android Only) | optional | Default: " Biometric Sign On" + subtitle: 'Authenticate with Fingerprint', // (Android Only) | optional | Default: null + // description: 'Please authenticate', // optional | Default: null + fallbackButtonTitle: 'Use Backup', // optional | When disableBackup is false defaults to "Use Pin". + // When disableBackup is true defaults to "Cancel" + disableBackup:true, // optional | default: false + }) + .then((result: any) => { + console.log(result) + this.navCtrl.navigateRoot('/pd'); + }) + .catch((error: any) =>{ + console.log(error); + let message=error.hasOwnProperty('message') ? error.message : "Authentication with Fingerprint" + this.toast.pdTriggerappmessage('Error: '+ message); + }); + } +} diff --git a/src/app/pages/authentication/authentication-routing.module.ts b/src/app/pages/authentication/authentication-routing.module.ts new file mode 100755 index 0000000..c1fa11a --- /dev/null +++ b/src/app/pages/authentication/authentication-routing.module.ts @@ -0,0 +1,35 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +// import { LoginPage } from './login/login.page'; +import { AuthPage } from './auth/auth'; +import { PasswordPage } from './password/password'; + + + +const routes: Routes = [ + { + path: '', + redirectTo :'login', + pathMatch : 'full' + }, + { + path:'login', + loadChildren:() => import('./login/login.module').then(m=>m.LoginPageModule) + // component:LoginPage + }, + { + path:'AuthPage', + // loadChildren:() => import('./login/login.module').then(m=>m.LoginPageModule) + component:AuthPage + }, + { + path:'PasswordPage', + component:PasswordPage + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class AuthenticationRoutingModule { } diff --git a/src/app/pages/authentication/authentication.component.html b/src/app/pages/authentication/authentication.component.html new file mode 100755 index 0000000..a1f9f7f --- /dev/null +++ b/src/app/pages/authentication/authentication.component.html @@ -0,0 +1,3 @@ + + + diff --git a/src/app/pages/authentication/authentication.component.scss b/src/app/pages/authentication/authentication.component.scss new file mode 100755 index 0000000..e69de29 diff --git a/src/app/pages/authentication/authentication.component.spec.ts b/src/app/pages/authentication/authentication.component.spec.ts new file mode 100755 index 0000000..ebc87e2 --- /dev/null +++ b/src/app/pages/authentication/authentication.component.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { AuthenticationComponent } from './authentication.component'; + +describe('AuthenticationComponent', () => { + let component: AuthenticationComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AuthenticationComponent ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(AuthenticationComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/authentication/authentication.component.ts b/src/app/pages/authentication/authentication.component.ts new file mode 100755 index 0000000..6343946 --- /dev/null +++ b/src/app/pages/authentication/authentication.component.ts @@ -0,0 +1,14 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-authentication', + templateUrl: './authentication.component.html', + styleUrls: ['./authentication.component.scss'], +}) +export class AuthenticationComponent implements OnInit { + + constructor() { } + + ngOnInit() {} + +} diff --git a/src/app/pages/authentication/authentication.module.ts b/src/app/pages/authentication/authentication.module.ts new file mode 100755 index 0000000..ae1892c --- /dev/null +++ b/src/app/pages/authentication/authentication.module.ts @@ -0,0 +1,21 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { AuthenticationRoutingModule } from './authentication-routing.module'; +// import { LoginPage } from './login/login.page'; +import { IonicModule } from '@ionic/angular'; +import { MaterialModuleModule } from 'src/app/shared/material-module/material-module.module'; +import { AuthPage } from './auth/auth'; +import { PasswordPage } from './password/password'; + + +@NgModule({ + declarations: [AuthPage,PasswordPage], + imports: [ + CommonModule, + AuthenticationRoutingModule, + IonicModule, + MaterialModuleModule + ] +}) +export class AuthenticationModule { } diff --git a/src/app/pages/authentication/login/login-routing.module.ts b/src/app/pages/authentication/login/login-routing.module.ts new file mode 100755 index 0000000..29ef3a2 --- /dev/null +++ b/src/app/pages/authentication/login/login-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { LoginPage } from './login.page'; + +const routes: Routes = [ + { + path: '', + component: LoginPage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class LoginPageRoutingModule {} diff --git a/src/app/pages/authentication/login/login.module.ts b/src/app/pages/authentication/login/login.module.ts new file mode 100755 index 0000000..736843a --- /dev/null +++ b/src/app/pages/authentication/login/login.module.ts @@ -0,0 +1,22 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { LoginPageRoutingModule } from './login-routing.module'; + +import { LoginPage } from './login.page'; +import { MaterialModuleModule } from 'src/app/shared/material-module/material-module.module'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + LoginPageRoutingModule, + MaterialModuleModule + ], + declarations: [LoginPage] +}) +export class LoginPageModule {} diff --git a/src/app/pages/authentication/login/login.page.html b/src/app/pages/authentication/login/login.page.html new file mode 100755 index 0000000..8f5286d --- /dev/null +++ b/src/app/pages/authentication/login/login.page.html @@ -0,0 +1,59 @@ + + + +
+
+
+
+ + +
+
+
+
+
diff --git a/src/app/pages/authentication/login/login.page.scss b/src/app/pages/authentication/login/login.page.scss new file mode 100755 index 0000000..d290157 --- /dev/null +++ b/src/app/pages/authentication/login/login.page.scss @@ -0,0 +1,58 @@ +// page-login { + + .relative{ + background-image: url('../../../../assets/img/misc/login.jpg'); + // background-color: #524f62; + background-size: cover; + position: absolute; + height: 100%; + width: 100%; + } + .form{ + margin: 22px; + font: inherit; + color: inherit; + } + .mat-card{ + margin-top: 50%; + background-color: rgba(255, 255, 255, 0.57); + border-radius: 10px; + } + + + .login-session{ + margin-top: 5%; + // background-color: rgba(255, 255, 255, 0.57); + // border-radius: 10px; + } + img{ + height: 70px !important; + } + *{ + font-size: 25px !important; + } + button.mat-primary { + background-color: #E00201 !important; + } + .mat-raised-button{ + border-radius: 30px; + padding: 19px 45px; + line-height: 0px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + .label_name{ + color:#e00201; + text-align: center; + } + .spinner_div{ + padding: 1px 40px; + margin: 0px; + background-color: #E00201; + border-radius: 30px; + width: 190px !important; + position: relative; + left: 20%; + justify-content: center !important; + text-align: center; + } + // } \ No newline at end of file diff --git a/src/app/pages/authentication/login/login.page.spec.ts b/src/app/pages/authentication/login/login.page.spec.ts new file mode 100755 index 0000000..07cb76a --- /dev/null +++ b/src/app/pages/authentication/login/login.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { LoginPage } from './login.page'; + +describe('LoginPage', () => { + let component: LoginPage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ LoginPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(LoginPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/authentication/login/login.page.ts b/src/app/pages/authentication/login/login.page.ts new file mode 100755 index 0000000..e886611 --- /dev/null +++ b/src/app/pages/authentication/login/login.page.ts @@ -0,0 +1,301 @@ +import { Component, OnInit } from '@angular/core'; +import { FormGroup } from '@angular/forms'; +import { MatDialogConfig, MatDialog } from '@angular/material'; +import { AwsServiceProvider } from 'src/app/services/aws-service/aws-service'; +import { CognitoServiceProvider } from 'src/app/services/aws-service/cognito.service'; +import { NavController, MenuController, Platform } from '@ionic/angular'; +import { ToastProvider } from 'src/app/services/common-provider/toast'; +import { Push, PushOptions, PushObject } from '@ionic-native/push/ngx'; +import { PdtriggerProvider } from 'src/app/services/pdtrigger/pdtrigger'; +import { ConstantsProvider } from 'src/app/services/constants/constants'; +import { Market } from '@ionic-native/market/ngx'; +import { AppVersion } from '@ionic-native/app-version/ngx'; +import { NavigationExtras } from '@angular/router'; +import { EventsService } from 'src/app/services/common-provider/events/events.service'; + +@Component({ + selector: 'app-login', + templateUrl: './login.page.html', + styleUrls: ['./login.page.scss'], +}) +export class LoginPage implements OnInit { + + users: any; + changepass: FormGroup; + email: string; + password: string; + newpassword: any; + confirmPassword: any; + changePassword: any; + user_id:any; + status: Boolean = false; + config: MatDialogConfig = { + disableClose: false, + width: '', + height: '', + position: { + top: '', + bottom: '', + left: '', + right: '' + } + }; + curr_environmnet: any; + app_version: string; + spinner_access: boolean; + constructor( public aws: AwsServiceProvider, public dialog: MatDialog, + public shared:CognitoServiceProvider,public navCtrl:NavController,public Menu:MenuController + ,public toast:ToastProvider,private push:Push,private pdtrigger:PdtriggerProvider,private eventsService:EventsService, + private constantProvider:ConstantsProvider,private platform:Platform, private marketOpener:Market + ,private appVersion:AppVersion) { + this.curr_environmnet=this.constantProvider.environment() + } + ngOnInit(){ + //this.loggedInCheck(); + this.appVersion.getVersionNumber().then(versionNumber=>{ + console.log("Version Number :",versionNumber) + this.app_version=versionNumber; + },err=>{ + console.log("Version Error",err); + }) + } + ngAfterViewInit(){ + this.Menu.enable(false); + } + ngOnDestroy(){ + this.Menu.enable(true); + } + /** + * @param email + * @param password + * AWS login service + */ + login() { + // console.log(this.email); + if(this.spinner_access){ + return; + } + if(this.email !==undefined && this.password !==undefined && this.email !='' && this.password !='' && this.email !=null && this.password !=null ){ + this.spinner_access=true + let auth = { 'Username': this.email, 'Password': this.password }; + this.aws.dologin(auth).subscribe(awsres => { + let userid = this.aws.getlocale(); + this.user_id=userid + this.getCommonSettings() + this.aws.getuserprofile(userid).subscribe(usersres=> + { + this.users = usersres; + + if (this.users.dataStatus == true) { + + if(this.users.records[0].role_name == "PD Officer" || this.users.records[0].role_name == "PD Executive"){ + localStorage.setItem("pd_user_details",JSON.stringify(this.users.records[0])) + this.notification() + this.checkAppVersion() + this.spinner_access=false + this.navCtrl.navigateRoot('/pd/pd-list'); + + }else + { + this.spinner_access=false + this.toast.pdTriggerappmessage('This App only for PD Officers'); + this.email = "" + this.password = "" + localStorage.clear(); + } + + + } + this.spinner_access=false + },err=>{ + this.spinner_access=false + if(err.message){ + this.toast.pdTriggerappmessage(JSON.stringify(err.message)) + this.email = "" + this.password = "" + } + }); + this.spinner_access=false + }, err => { + this.spinner_access=false + console.log(JSON.stringify(err.message)); + if (err.message == "New password is required.") { + //console.log("if"); + let navigationParams:NavigationExtras={ + state:{ + 'Username':this.email,'Password':this.password + } + } + this.navCtrl.navigateRoot('/authentication/PasswordPage',navigationParams); + // this.navCtrl.navigateRoot('PasswordPage',{'Username':this.email,'Password':this.password}); + } else { + console.log(JSON.stringify(err.message)); + this.toast.pdTriggerappmessage(JSON.stringify(err.message)); + this.email = "" + this.password = "" + } + //alert(err.message); + }) + }else + { + this.toast.pdTriggerappmessage('Enter Email or Password'); + } + } + getCommonSettings(){ + // getCommonConfig + this.pdtrigger.getCommonConfig().subscribe(res=>{ + if(res['dataStatus']){ + localStorage.setItem('commonConfig',JSON.stringify(res['records'])) + } + }) + } + /** + * New password set + * Defalut aws function + * @param email password,newpassword + */ + // newpassopen() { + // let dialogRef = this.dialog.open(NewPasswordDialog, this.config); + // dialogRef.afterClosed().subscribe(result => { + // if (result !== undefined) { + // let auth = { 'Username': this.email, 'Password': this.password, 'newpassword': result }; + // console.log(auth); + // this.aws.dologin(auth).subscribe(res => { + // console.log(res); + // // this.router.navigate(['/home']); + // }, err => { + // // alert(err.message); + + // }) + // } + // }); + // } + + forgotopen() { + this.status = true; + } + notification(){ + // this.nav.setRoot(this.nav.getActive().component); + this.push.hasPermission().then((res: any) => { + + if (res.isEnabled) { + console.log('We have permission to send push notifications'); + } else { + console.log('We do not have permission to send push notifications'); + } + + }); + const option:PushOptions={ + android:{ + // senderID:'893175418100' + senderID:'906855209078' + }, + ios: { + alert: 'true', + badge: true, + sound: 'false' + }, + windows: {}, + browser: { + pushServiceURL: 'http://push.api.phonegap.com/v1/push' + } + } + const pushObject:PushObject=this.push.init(option); + // if(this.notificationAccess){ + + pushObject.on('notification').subscribe((notification: any) =>{ + console.log('Received a notification', notification) + if(notification.additionalData.foreground){ + // this.events.publish('alert',notification); + this.toast.setAlertwithButton(notification) + } + else{ + this.eventsService.publishNotifyEvent(notification); + + } + }); + + + + pushObject.on('registration').subscribe((registration: any) => { + console.log('Device registered', registration) + let data:any={"fk_user_id":this.user_id,"token":registration.registrationId,"client":"MOB"} + console.log("update notification data api",data); + this.pdtrigger.updateNotificationToken(data).subscribe(res=>{ + if(res['dataStatus']){ + console.log("Token Sended Successfully",res) + } + },err=>{ + console.log("Error",err); + }) + + }); + + pushObject.on('error').subscribe(error => console.error('Error with Push plugin', error)); + + } + + checkAppVersion(){ + if(this.curr_environmnet.environment_name == 'production'){ + this.pdtrigger.checkAppVersion().subscribe(result=>{ + if(result['dataStatus']){ + console.log("app versions",this.app_version,result); + console.log(result['records'][0].version.toString()) + if(this.app_version != result['records'][0].version.toString()){ + return new Promise((resolve,reject)=>{ + // let alert= this.toast.setAlertwithOKButton("Update Available","A new version of App is available Please download it..!") + // alert.present(); + // alert.onDidDismiss((data)=>{ + // if(data == false){ + // this.platform.exitApp(); + // reject() + // return true; + // } + // else{ + // this.marketOpener.open('com.sineedge.pdgenie'); + // this.platform.exitApp(); + // } + // }) + this.toast.setAlertwithOKButton("Update Available","A new version of App is available Please download it..!").then(data=>{ + if(data == false){ + // this.platform.exitApp(); + navigator['app'].exitApp() + reject() + return true; + } + else{ + this.marketOpener.open('com.sineedge.pdgvendor'); + // this.platform.exitApp(); + navigator['app'].exitApp() + } + }) + + }) + } + } + }) + } + } + + forgotpassword() { + + let auth = { 'Username': this.email }; + console.log(auth); + this.aws.userforgotpass(auth).subscribe(res => { + console.log(res); + + }) + } + loggedInCheck(){ + //alert(this.shared.isLoggedIn); + if(this.shared.isLoggedIn){ + alert("if"); + // this.router.navigate(['/home']); + return false; + }else{ + alert("else"); + + return true; + } + } +} diff --git a/src/app/pages/authentication/password/password.html b/src/app/pages/authentication/password/password.html new file mode 100755 index 0000000..c951504 --- /dev/null +++ b/src/app/pages/authentication/password/password.html @@ -0,0 +1,56 @@ + + + + + Change Password + + + + + + + + + + + + Circle Image + + + + + +

New Password

+
+
+ + + + + + + + +
+ + + +
+
+
+ + + + + + +
+
+ + diff --git a/src/app/pages/authentication/password/password.scss b/src/app/pages/authentication/password/password.scss new file mode 100755 index 0000000..aca9794 --- /dev/null +++ b/src/app/pages/authentication/password/password.scss @@ -0,0 +1,37 @@ +// page-password { + ion-content{ + --background: #eee; + } + .mat-card{ + width: 80%; + margin-left: 10%; + margin-top: 35%; + border-radius: 10px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + h4{ + font-weight: normal; + } + button.mat-primary { + background-color: #dd4437 !important; + } + .mat-raised-button{ + border-radius: 30px; + padding: 19px 45px; + line-height: 0px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + .rounded-circle { + border-radius: 50%!important; + background-image: url('../../../../assets/img/misc/avatar.jpg'); + } + .img-fluid{ + max-width: 40%; + height: auto; + margin-top:-70px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2); + } + ion-icon{ + font-size:2.2em; + } +// } diff --git a/src/app/pages/authentication/password/password.ts b/src/app/pages/authentication/password/password.ts new file mode 100755 index 0000000..03eaab9 --- /dev/null +++ b/src/app/pages/authentication/password/password.ts @@ -0,0 +1,97 @@ +import { Component } from '@angular/core'; +import {NavController } from '@ionic/angular'; +import { AwsServiceProvider } from '../../../services/aws-service/aws-service'; +import { ToastProvider } from '../../../services/common-provider/toast'; +import { ConstantsProvider } from '../../../services/constants/constants'; +import { ActivatedRoute, Router } from '@angular/router'; +import { PdtriggerProvider } from 'src/app/services/pdtrigger/pdtrigger'; +/** + * Generated class for the PasswordPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + +@Component({ + selector: 'page-password', + templateUrl: 'password.html', + styleUrls: ['./password.scss'], +}) +export class PasswordPage { + commonImage: string; + newpassword: any; + confirmPassword: any; + pin:any; + Username:any; + Password:any; + users: any; + + constructor(public navCtrl: NavController,private actRoute:ActivatedRoute,private router:Router,public aws:AwsServiceProvider,public toast:ToastProvider,public commonconstant:ConstantsProvider,private pdtrigger:PdtriggerProvider) { + this.commonImage = this.commonconstant.commonimage; + // this.Username = this.navParams.get('Username'); + // this.Password = this.navParams.get('Password'); + this.actRoute.queryParams.subscribe(re=>{ + if(this.router.getCurrentNavigation().extras.state.Username){ + this.Username = this.router.getCurrentNavigation().extras.state.Username + console.log(this.Username) + } + if(this.router.getCurrentNavigation().extras.state.Password){ + this.Password = this.router.getCurrentNavigation().extras.state.Password + console.log(this.Password) + } + }) + } + + ngOnInit() { + console.log('ngOnInit PasswordPage'); + } + setNewPassword(newpass) + { + if(newpass !='' && newpass !=null && newpass !== undefined){ + let auth = { 'Username': this.Username, 'Password': this.Password, 'newpassword': newpass }; + console.log(auth); + this.aws.dologin(auth).subscribe(res => { + console.log(res); + // this.navCtrl.setRoot(PdListPage); + this.getUserDet() + // this.router.navigate(['/home']); + }, err => { + this.toast.pdTriggerappmessage(err.message); + // alert(err.message); + }) + }else + { + this.toast.pdTriggerappmessage('Enter the new Password'); + } + } + getUserDet(){ + let userid = this.aws.getlocale(); + this.aws.getuserprofile(userid).subscribe(usersres=> + { + this.users = usersres; + + if (this.users.dataStatus == true) { + + if(this.users.records[0].role_name == "PD Officer" || this.users.records[0].role_name == "PD Executive"){ + this.getCommonSettings() + localStorage.setItem("pd_user_details",JSON.stringify(this.users.records[0])) + this.navCtrl.navigateRoot('/pd'); + }else + { + + this.toast.pdTriggerappmessage('This App only for PD Officers'); + localStorage.clear(); + } + } + }); + } + getCommonSettings(){ + // getCommonConfig + this.pdtrigger.getCommonConfig().subscribe(res=>{ + if(res['dataStatus']){ + localStorage.setItem('commonConfig',JSON.stringify(res['records'])) + } + }) + } +} diff --git a/src/app/pages/pd/Modal/image-name-model/image-name-model.html b/src/app/pages/pd/Modal/image-name-model/image-name-model.html new file mode 100755 index 0000000..0437c79 --- /dev/null +++ b/src/app/pages/pd/Modal/image-name-model/image-name-model.html @@ -0,0 +1,43 @@ + + + + + Document Details + + + + + + Document Name + + +
+ Select an option
+ + Shown On Report
+ Hide On Report +
+
+
+ + + Submit +
+ +
+ + + + Capture Image + + + + + Capture Document + + + +
diff --git a/src/app/pages/pd/Modal/image-name-model/image-name-model.scss b/src/app/pages/pd/Modal/image-name-model/image-name-model.scss new file mode 100755 index 0000000..7bfa9ef --- /dev/null +++ b/src/app/pages/pd/Modal/image-name-model/image-name-model.scss @@ -0,0 +1,3 @@ +// page-image-name-model { + +// } \ No newline at end of file diff --git a/src/app/pages/pd/Modal/image-name-model/image-name-model.ts b/src/app/pages/pd/Modal/image-name-model/image-name-model.ts new file mode 100755 index 0000000..4654196 --- /dev/null +++ b/src/app/pages/pd/Modal/image-name-model/image-name-model.ts @@ -0,0 +1,57 @@ +import { Component, ViewChild } from '@angular/core'; +import { NavController, NavParams, ModalController } from '@ionic/angular'; +import { ToastProvider } from '../../../../services/common-provider/toast'; + +/** + * Generated class for the ImageNameModelPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + +@Component({ + selector: 'page-image-name-model', + templateUrl: 'image-name-model.html', +}) +export class ImageNameModelPage { + pdDetails:any; + doc_name:string=''; + is_show_report:any; + @ViewChild('searchInput',{static:false}) sInput; + constructor(private modalCtrl:ModalController,private navParams:NavParams,private toastCtrl:ToastProvider) { + if(this.navParams.get('image_decision') != undefined && this.navParams.get('image_decision') != null && this.navParams.get('image_decision') != ''){ + this.pdDetails=this.navParams.get('image_decision') + } + else{ + this.pdDetails=this.navParams.get('FormDet') + this.doc_name=this.pdDetails.doc_name + } + console.log("pd ",this.pdDetails); + + } + + ngOnInit() { + console.log('ngOnInit ImageNameModelPage'); + // this.sInput.setFocus(); + } + submit(){ + if(this.doc_name == ''){ + this.toastCtrl.pdTriggerappmessage("Please Enter the Document Name") + return; + } + let data:any; + if(this.pdDetails.form_id == '5' && this.pdDetails.doc_name != ''){ + data= {doc_name:this.pdDetails.doc_name,is_show_report:this.is_show_report} + } + else{ + data={doc_name:this.doc_name} + } + console.log(data) + this.modalCtrl.dismiss(data) + } + send_decision(data){ + console.log(data) + this.modalCtrl.dismiss(data) + } +} diff --git a/src/app/pages/pd/complete-list/complete-list.html b/src/app/pages/pd/complete-list/complete-list.html new file mode 100755 index 0000000..71c0109 --- /dev/null +++ b/src/app/pages/pd/complete-list/complete-list.html @@ -0,0 +1,118 @@ + + + + + + Complete List + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
+ + + + + + +

{{progess.pd_sno_split.lender_name}}
+ {{progess.pd_sno_split.serial_no}}

+ + + +

{{progess.applicant_name | titlecase}}

+ +
+ + +
+ {{progess.pd_date_of_initiation}} +
+
+ {{progess.city_name}} +
+
+
+
+ + + + {{progess.lender_short_name}}, {{progess.lender_applicant_id}} + + + + + {{progess.vendor_status}} + + + +
+
+ + + + +

{{progess.pd_id}}

+ + + +

Add On for {{progess.parent_pd_id}}

+ +
+ + +
+ {{progess.pd_date_of_initiation}} +
+
+ {{progess.city_name}} +
+
+
+
+ + + + {{progess.lender_short_name}}, {{progess.lender_applicant_id}} + + + + + {{progess.vendor_status}} + + + +
+
+
+
+
+
+
No Completed Cases Found
+

Showing data for last {{filtered_days}}. To see older records, please use advanced filter

+
+
diff --git a/src/app/pages/pd/complete-list/complete-list.scss b/src/app/pages/pd/complete-list/complete-list.scss new file mode 100755 index 0000000..ba5bd0d --- /dev/null +++ b/src/app/pages/pd/complete-list/complete-list.scss @@ -0,0 +1,152 @@ +// page-complete-list { + mat-grid-tile { + background: white!important; + } + .grid{ + padding:0px; + } + ion-content{ + padding: 0px !important; + // margin-top: 45px !important; + } + .ion-grid{ + padding: 0px !important; + width: 100%; + } + ion-row{ + width: 100%; + padding: 0px !important; + margin: 0px; + } + .fadeIn { + animation-name: fadeIn; + animation-duration: 15s; + transition: all 0.5s cubic-bezier(.36,-0.64,.34,1.76); + } + @font-face{ + font-family: Roboto; + src: url('../../../../assets/fonts/Roboto-Bold.ttf')!important; + } + h1{ + margin: 2px 0; + font-size: 21px; + // overflow: hidden; + // text-overflow: ellipsis; + // font-weight: bold!important; + } + // .box{ + // box-shadow: 0 5px 20px 0 rgba(0,0,0,.2),0 13px 24px -11px rgba(50, 114, 178, 0.59) !important; + // } + ion-content{ + //background-color: #eee !important; + padding:0px !important; + } + .mat-card{ + // border-top: 3px solid rgba(50, 114, 178, 0.78); + padding: 0px !important; + box-shadow: none !important; + width: 100%; + padding:0px !important; + margin:0px !important; + // height: 100%; + } + // *{ + // font-size: 10px; + // } + .mat-card-title{ + margin-bottom: 0px; + } + .list-md{ + margin: 0px; + padding: 0px; + } + .lettericon{ + // text-align: center; + // background-color: cadetblue; + // padding: 10px 8px 10px 8px; + // border-radius: 20%; + // color: #fff; + // font-size: 90%; + // font-weight: bold + + background-color: cadetblue; + padding: 6px 7px 6px 7px; + border-radius: 10px; + color: #fff; + font-size: 90%; + font-weight: bold; + min-width: 4.2em; + text-align: center; + } + .no_applicant_pd{ + background-color: cadetblue; + padding: 10px 15px 10px 15px; + border-radius: 50%; + color: #fff; + } + .label-md{ + margin: 0px; + } + // .item-md h4 { + // font-size: 1.7rem; + // } + .item-md ion-icon[item-start] + .item-inner{ + margin-left: 0px; + } + .mat-raised-button{ + border-radius: 30px; + padding: 19px 45px; + line-height: 0px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + + .button-md-primary { + margin-bottom: 0px !important; + height: 50px; + } + ion-fab[middle]{ + top:17% !important; + } + .fab-md-optblue{ + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2) !important; + } + ion-footer{ + position: absolute; + } + ion-slide.swiper-slide { + align-items: flex-start; + // height: auto; + + // overflow-x:scroll; + // overflow-y:scroll; + // display: block; + } + ion-slides{ + height: auto; + } + .app_id{ + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0px; + } + +// } +p.note{ + color: gray; + font-size: 13px; + font-weight: bold; + text-align: center; + /* margin-top: 26%; */ + /* border: 1px solid lightblue; */ + border-radius: 10px; + /* width: 90%; */ + /* margin-left: 5%; */ + /* justify-content: center; */ + padding: 10px; + float: center; + /* align-items: center; */ + /* align-content: center; */ + +} \ No newline at end of file diff --git a/src/app/pages/pd/complete-list/complete-list.ts b/src/app/pages/pd/complete-list/complete-list.ts new file mode 100755 index 0000000..223336b --- /dev/null +++ b/src/app/pages/pd/complete-list/complete-list.ts @@ -0,0 +1,195 @@ +import { Component } from '@angular/core'; +import {NavController, ModalController } from '@ionic/angular'; +import { AwsServiceProvider } from '../../../services/aws-service/aws-service'; +import { PdtriggerProvider } from '../../../services/pdtrigger/pdtrigger'; +import { CognitoServiceProvider } from '../../../services/aws-service/cognito.service'; +import { DatabaseProvider } from '../../../services/database/database'; +import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; +import { NavigationExtras } from '@angular/router'; +import { AdvanceFilterPage } from '../pd-list/advance-filter/advance-filter'; + +/** + * Generated class for the CompleteListPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + +//@IonicPage() +@Component({ + selector: 'page-complete-list', + templateUrl: 'complete-list.html', + styleUrls:['complete-list.scss'] +}) +export class CompleteListPage { + // random_ng_past(): any { + // throw new Error("Method not implemented."); + // } + // random_bg_color(): any { + // throw new Error("Method not implemented."); + // } + aws: any; + pdlistaccess: boolean; + pdofficer: any; + pdlistdetails: any = []; + pdschduleDetails: any; + searchpast: any; + pdcomplete: any=[]; + searchcomplete: any; + bgColorPast: any = []; + bgColor: any = []; + viewchange: boolean; + pdlist:any = "0"; + filteredData: boolean = false; + filtered_days: any; + + + constructor(public navCtrl: NavController,public awsservice:AwsServiceProvider,public PdtriggerProvider:PdtriggerProvider,public shared:CognitoServiceProvider,public db:DatabaseProvider,public androidPermissions:AndroidPermissions,private modalCtrl:ModalController) { + + } + + ngOnInit() { + setTimeout(()=>{ + this.filtered_days=JSON.parse(localStorage.getItem('commonConfig')) + if(this.filtered_days) { + this.filtered_days = this.filtered_days.default_pd_list_count + this.filtered_days=this.filtered_days.count+' '+this.filtered_days.factor + } + },300) + console.log('ngOnInit CompleteListPage'); + + // this.db.getuserDetails(); + + } + ionViewWillEnter() + { + console.log("Pd list ionViewCanEnter") + this.getpdTriggerdetails(); + } + + doRefresh(refresher) { + this.bgColor = []; + this.pdschduleDetails = []; + this.pdcomplete = []; + // this.pdlistaccess = true; + this.shared.refresh(); + this.getpdTriggerdetails(); + setTimeout(() => { + + refresher.target.complete(); + }, 2000); + } + getpdTriggerdetails() + { + this.pdlistaccess=true + let userid = this.awsservice.getlocale(); + //.log("User",userid) + // this.pdlistaccess = true; + + this.PdtriggerProvider.getpddetails(userid).subscribe(res=> + { + console.log('res',res); + this.pdlistdetails = res; + if(this.pdlistdetails.dataStatus == true) + { + this.pdlistaccess = false; + + + // this.searchpast = this.pdschduleDetails; + + this.pdcomplete = this.pdlistdetails.records.filter(complete=>complete.vendor_status == "COMPLETED"); + this.searchcomplete = this.pdcomplete; + + //FOR SPLITTING THE VALUE OF pd_sno + this.pdcomplete.length >0 ? + this.pdcomplete.forEach(value=>{ + let original=value.pd_sno + value.pd_sno_split={lender_name:original.replace(/[^a-z]/gi, ''),serial_no:original.match(/(\d+)/)[0]} + }) : this.pdcomplete + + + + this.random_bg_color(); + this.random_ng_past(); + }else + { + this.pdlistaccess = false; + this.pdlistdetails = "No Records Found"; + } + this.filteredData = false; + },err=>{ + this.pdlistaccess=false + this.pdlistdetails = "No Records Found"; + }) + + } + random_bg_color() { + for(let id of this.pdcomplete){ + var x = Math.floor(Math.random() * 256); + var y = Math.floor(Math.random() * 256); + var z = Math.floor(Math.random() * 256); + this.bgColor.push("rgb(" + x + "," + y + "," + z + ")"); + + } + + return this.bgColor; + } + random_ng_past() + { + for(let id of this.pdcomplete){ + var x = Math.floor(Math.random() * 256); + var y = Math.floor(Math.random() * 256); + var z = Math.floor(Math.random() * 256); + this.bgColorPast.push("rgb(" + x + "," + y + "," + z + ")"); + + } + } + + PdAllocation(pddetails) + { + + if(pddetails.vendor_status == 'COMPLETED') + { + // ,{'pdDetails':pddetails} + let navigationExtras:NavigationExtras={ + state:{ + 'pdDetails':pddetails + } + } + this.navCtrl.navigateForward('/pd/InputPage',navigationExtras); + } + } + async openFilterModal(){ + const modalCtrl=await this.modalCtrl.create({ + component:AdvanceFilterPage, + componentProps:{'FormDet':{from_page:'complete_list'}}, + cssClass:'filterModal', + backdropDismiss:false + }) + await modalCtrl.present() + modalCtrl.onDidDismiss().then((modalData:any)=>{ + console.log("Image Data",modalData); + if(modalData && modalData.data != undefined && modalData.data.length > 0){ + this.setFilteredData(modalData.data) + } + }) + } + setFilteredData(filteredData){ + this.pdlistaccess = false; + this.filteredData = true; + this.pdcomplete = filteredData.filter(complete=>complete.vendor_status == "COMPLETED"); + this.searchcomplete = this.pdcomplete; + + //FOR SPLITTING THE VALUE OF pd_sno + this.pdcomplete.length >0 ? + this.pdcomplete.forEach(value=>{ + let original=value.pd_sno + value.pd_sno_split={lender_name:original.replace(/[^a-z]/gi, ''),serial_no:original.match(/(\d+)/)[0]} + }) : this.pdcomplete + + + + this.random_bg_color(); + this.random_ng_past(); + } +} diff --git a/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.html b/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.html new file mode 100755 index 0000000..0d766f3 --- /dev/null +++ b/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.html @@ -0,0 +1,25 @@ + + + + + Complete Discussion + + + + + + + + +

Please confirm you are completing the Discussion and forwarding for Quality Check ?

+ +
+

{{i+1}}  {{sec}}

+
+
+
+ +     Ok + Complete Anyway + diff --git a/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.scss b/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.scss new file mode 100755 index 0000000..4bd619a --- /dev/null +++ b/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.scss @@ -0,0 +1,20 @@ +// page-form-complete-check-modal { + .title{ + font-size: 16px; + color:black; + font-weight:bold + } + .head{ + margin-left: 10%; + text-align: right; + font-weight: bold; + color:#e00201; + + } + .datas{ + font-size:16px; + color: darkslateblue; + font-weight:bold; + } + +// } diff --git a/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.ts b/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.ts new file mode 100755 index 0000000..3060b84 --- /dev/null +++ b/src/app/pages/pd/form-complete-check-modal/form-complete-check-modal.ts @@ -0,0 +1,41 @@ +import { Component } from '@angular/core'; +import { NavController, NavParams, ModalController } from '@ionic/angular'; + + +/** + * Generated class for the FormCompleteCheckModalPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + +//@IonicPage() +@Component({ + selector: 'page-form-complete-check-modal', + templateUrl: 'form-complete-check-modal.html', + styleUrls:['form-complete-check-modal.scss'] +}) +export class FormCompleteCheckModalPage { + + datas:any + pdMaster: any; + is_display_overwrite_btn: any; + constructor(public modalCtrl: ModalController, public navParams: NavParams) { + this.datas=this.navParams.get('values'); + this.pdMaster = this.navParams.get('pdMaster'); + this.is_display_overwrite_btn = this.navParams.get('is_display_overrideBtn'); + console.log(this.datas) + } + + ngOnInit() { + console.log('ngOnInit FormCompleteCheckModalPage'); + + } + closeModal(){ + this.modalCtrl.dismiss(); + } + overwritten_pd() { + this.modalCtrl.dismiss({pd_overwritten:true}) + } + +} diff --git a/src/app/pages/pd/google-map/google-map.html b/src/app/pages/pd/google-map/google-map.html new file mode 100755 index 0000000..a675389 --- /dev/null +++ b/src/app/pages/pd/google-map/google-map.html @@ -0,0 +1,28 @@ + + + + + + + + + {{current_coordinates}} + + + + + + +
+ +
+
+
diff --git a/src/app/pages/pd/google-map/google-map.module.ts b/src/app/pages/pd/google-map/google-map.module.ts new file mode 100755 index 0000000..2080187 --- /dev/null +++ b/src/app/pages/pd/google-map/google-map.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +// import { IonicPageModule } from '@ionic/angular'; +import { GoogleMapPage } from './google-map'; +import { RouterModule } from '@angular/router'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IonicModule } from '@ionic/angular'; + +@NgModule({ + declarations: [ + GoogleMapPage, + ], + imports: [ + CommonModule, + FormsModule, + IonicModule, + RouterModule.forChild([ + { + path: '', + component: GoogleMapPage + } + ]) + ], +}) +export class GoogleMapPageModule {} diff --git a/src/app/pages/pd/google-map/google-map.scss b/src/app/pages/pd/google-map/google-map.scss new file mode 100755 index 0000000..06a0e01 --- /dev/null +++ b/src/app/pages/pd/google-map/google-map.scss @@ -0,0 +1,18 @@ +// page-google-map { + ion-content { + // height: 100%; + padding:3px !important; + } + + #map { + width: 100%; + height: 100%; + } + #refresh_coords{ + position: absolute; + top: 10px; + right: 60px; + z-index: 5; + background-color: #fff; + } +// } diff --git a/src/app/pages/pd/google-map/google-map.ts b/src/app/pages/pd/google-map/google-map.ts new file mode 100755 index 0000000..474ee9f --- /dev/null +++ b/src/app/pages/pd/google-map/google-map.ts @@ -0,0 +1,167 @@ +import { Component, ViewChild, ElementRef } from '@angular/core'; +import { NavController,Platform } from '@ionic/angular'; +// import { Geolocation } from '@ionic-native/geolocation'; +import { Geolocation } from '@ionic-native/geolocation/ngx'; +import { ConstantsProvider } from '../../../services/constants/constants'; +import { GpsService } from 'src/app/services/common-provider/gps.service'; +// import { Platform } from '@ionic/angular/platform/platform'; + +/** + * Generated class for the GoogleMapPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ +declare var google; + +// @IonicPage() +@Component({ + selector: 'page-google-map', + templateUrl: 'google-map.html', + styleUrls:['google-map.scss'] +}) +export class GoogleMapPage { + @ViewChild('map',{static:true}) mapElement: ElementRef; + map: any; + marker + is_loaded:boolean=false + current_coordinates:string="Loading..." + constructor(public navCtrl: NavController,private geolocation:Geolocation,private gpsService:GpsService,private platform:Platform) { + + + } + + ngOnInit() { + console.log('ngOnInit GoogleMapPage'); + console.log(!this.platform.is('cordova')) + if(!this.platform.is('cordova')){ + this.dummyloadMap() + } + else{ + this.gpsService.checkGPSPermission().then(res=>{ + console.log("Gps Enabled",res) + if(res){ + this.loadMap(res); + } + else{ + alert("We need location access to capture the geocoordinates of your place. Please turn on the location to continue"); + this.ngOnInit() + } + }) + } + } + + loadMap(geoCords){ + this.is_loaded=false + // this.geolocation.getCurrentPosition().then((position) => { + console.log(geoCords) + // this.current_coordinates=String(position.coords.latitude)+','+String(position.coords.longitude) + this.current_coordinates=geoCords + let position=this.current_coordinates.split(',') + let latLng = new google.maps.LatLng(Number(position[0]), Number(position[1])); + // let latLng = new google.maps.LatLng(12.9788093,80.1871215); + // this.current_coordinates="12.9788093,80.1871215" + let mapOptions = { + center: latLng, + zoom: 15, + mapTypeId: google.maps.MapTypeId.ROADMAP + } + + this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions); + this.is_loaded=true + this.addInitialMarker(Number(position[0]),Number(position[1])) + + // }, (err) => { + // console.log(err); + + // }); + + } + addInitialMarker(lat,lang){ + this.marker = new google.maps.Marker({ + map: this.map, + animation: google.maps.Animation.DROP, + position:{lat:lat,lng:lang} + }); + let content = lat+','+lang; + this.addInfoWindow(this.marker, content); + } + addMarker(){ +this.gpsService.getGeoTag().then((geoCords:any)=>{ + if(geoCords == undefined){ + return + } + // alert(geoCords) + let geoCords_string:string=String(geoCords) + // alert(geoCords_string) + if(this.marker != undefined){ + this.marker.setMap(null) + } + let position=geoCords_string.split(',') + console.log(position); + let curr_lat=Number(position[0]) + let curr_lng=Number(position[1]) + console.log(curr_lat,curr_lng); + this.marker = new google.maps.Marker({ + map: this.map, + animation: google.maps.Animation.DROP, + position:{lat:curr_lat,lng:curr_lng} + }); + let latLng = new google.maps.LatLng(curr_lat,curr_lng); + this.map.setCenter(latLng) + this.current_coordinates=geoCords_string + let content = geoCords_string; + this.addInfoWindow(this.marker, content); + }) + } + dummyloadMap(){ + console.log(this.platform) + // this.geolocation.getCurrentPosition().then((position) => { + // console.log(position) + // this.current_coordinates=String(position.coords.latitude)+','+String(position.coords.longitude) + // let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); + let latLng = new google.maps.LatLng(12.9912884,80.1667786); + this.current_coordinates="12.9912884,80.1667786" + let mapOptions = { + center: latLng, + zoom: 15, + mapTypeId: google.maps.MapTypeId.ROADMAP + } + + this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions); + this.dummyMarker() + // }, (err) => { + // console.log(err); + + // }); + + } + dummyMarker(){ + console.log(this.marker) + if(this.marker != undefined){ +this.marker.setMap(null) + } + this.marker = new google.maps.Marker({ + map: this.map, + animation: google.maps.Animation.DROP, + position:{lat:12.9912884,lng:80.1667786} + }); + let latLng = new google.maps.LatLng(12.9912884,80.1667786); + this.map.setCenter(latLng) + this.current_coordinates="12.9912884,80.1667786" + let content = this.current_coordinates; + this.addInfoWindow(this.marker, content); + } + + addInfoWindow(marker, content){ + + let infoWindow = new google.maps.InfoWindow({ + content: content + }); + + google.maps.event.addListener(marker, 'click', () => { + infoWindow.open(this.map, marker); + }); + + } +} diff --git a/src/app/pages/pd/input/bounced-reject/bounced-reject.html b/src/app/pages/pd/input/bounced-reject/bounced-reject.html new file mode 100755 index 0000000..34dfb05 --- /dev/null +++ b/src/app/pages/pd/input/bounced-reject/bounced-reject.html @@ -0,0 +1,47 @@ + + + + + + Bounced Reject Reason + + + + + + + + + + + + Reason to Reject
+ + + {{bouns.bounce_reason_name}}
+

+
+ + + + + + + + + + Save + + + +
+
+
+ +
diff --git a/src/app/pages/pd/input/bounced-reject/bounced-reject.scss b/src/app/pages/pd/input/bounced-reject/bounced-reject.scss new file mode 100755 index 0000000..d62de6e --- /dev/null +++ b/src/app/pages/pd/input/bounced-reject/bounced-reject.scss @@ -0,0 +1,16 @@ +// page-bounced-reject { + + ion-content{ + background-color: gray !important; + // padding:0px !important; + } + .mat-card{ + // border-top: 3px solid rgba(50, 114, 178, 0.78); + padding: 7px 16px !important; + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2) !important; + border-radius: 10px; + + } + + +// } diff --git a/src/app/pages/pd/input/bounced-reject/bounced-reject.ts b/src/app/pages/pd/input/bounced-reject/bounced-reject.ts new file mode 100755 index 0000000..a564365 --- /dev/null +++ b/src/app/pages/pd/input/bounced-reject/bounced-reject.ts @@ -0,0 +1,109 @@ +import { Component } from '@angular/core'; +import { NavController, NavParams } from '@ionic/angular'; +import { AwsServiceProvider } from '../../../../services/aws-service/aws-service'; +import { PdtriggerProvider } from '../../../../services/pdtrigger/pdtrigger'; +import { QuestionCategoryProvider } from '../../../../services/question-category/question-category'; +import { FormBuilder } from '@angular/forms'; +import { PdListPage } from '../../pd-list/pd-list'; +import {ToastProvider} from '../../../../services/common-provider/toast' +import { ActivatedRoute, Router } from '@angular/router'; + +/** + * Generated class for the BouncedRejectPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + +@Component({ + selector: 'page-bounced-reject', + templateUrl: 'bounced-reject.html', + styleUrls:['bounced-reject.scss'] +}) +export class BouncedRejectPage { + + users: any; + bounseMaster: any; + pdDetails: any; + status: any; + bounce_reason:any; + bounce_reason_others:any = ''; + constructor(public navCtrl: NavController, private actRoute:ActivatedRoute,private router:Router, + public aws:AwsServiceProvider,public pdservice:PdtriggerProvider, + public qustCat:QuestionCategoryProvider,public fb:FormBuilder,public toast:ToastProvider) { + // this.pdDetails = this.navParams.get('appdetails'); + // this.status = this.navParams.get('status'); + // this.pdDetails=this.navParams.get('details') + this.actRoute.queryParams.subscribe(params=>{ + if(this.router.getCurrentNavigation().extras.state.details){ + this.pdDetails=this.router.getCurrentNavigation().extras.state.details + + this.users = localStorage.getItem('pd_user_details') + this.users=JSON.parse(this.users).userid + this.getDropdown(); + } + }) + } + + getDropdown() + { + + + this.qustCat.getcommondrop('BOUNCEMASTER').subscribe(res=> + { + if(res['dataStatus']==true){ + this.bounseMaster = res['records'].filter(bouns=>bouns.isactive==1); + console.log(this.bounseMaster); + } + }) + + } + updatePDStatus() + { + if(this.bounce_reason !=null && this.bounce_reason !=1) + { + let data = {'pd_id':this.pdDetails.pd_id,'vendor_status':this.pdDetails.pd_status,'fk_updatedby':this.users,'bounce_reason':this.bounce_reason,'bounce_reason_others':this.bounce_reason_others,'random_string':this.pdDetails.random_string}; + // console.log(this.bounce_reason) + // console.log(this.bounce_reason_others); + console.log(data); + + this.pdservice.updatepdStatus(data).subscribe(res=> + { + // this.updateStatus = res; + if(res['dataStatus'] == true) + { + this.toast.pdTriggerappmessage("Updated Successfully"); + setTimeout(()=>{ + this.navCtrl.navigateRoot('/pd'); + },2000) + } + }) + } + else if(this.bounce_reason == 1 && this.bounce_reason_others != '' && this.bounce_reason_others !=null ) + { + let data = {'pd_id':this.pdDetails.pd_id,'pd_status':this.pdDetails.pd_status,'fk_updatedby':this.users,'bounce_reason':this.bounce_reason,'bounce_reason_others':this.bounce_reason_others,'random_string':this.pdDetails.random_string}; + // console.log(this.bounce_reason) + // console.log(this.bounce_reason_others); + console.log(data); + this.toast.pdTriggerappmessage("Updated Successfully"); + this.pdservice.updatepdStatus(data).subscribe(res=> + { + // this.updateStatus = res; + if(res['dataStatus'] == true) + { + this.toast.pdTriggerappmessage("Updated Successfully"); + setTimeout(()=>{ + this.navCtrl.navigateRoot('/pd'); + },2000) + } + }) + } + + + + else{ + this.toast.pdTriggerappmessage("Please Choose the Reason to Reject"); + } + } +} diff --git a/src/app/pages/pd/input/input.html b/src/app/pages/pd/input/input.html new file mode 100755 index 0000000..72a7a32 --- /dev/null +++ b/src/app/pages/pd/input/input.html @@ -0,0 +1,412 @@ + + + + + + + {{pdMaster.lender_full_name}} - {{pdMaster.lender_applicant_id}} + + + + + + + + + + +   {{mainApplicant.applicant_name | titlecase}} + + + + + + link + sms + + + + + + + +
+ + + {{pdMaster.customer_segment_name ? (pdMaster.customer_segment_name).includes('-') ? (pdMaster.customer_segment_name).split('-')[0] : pdMaster.customer_segment_name : ''}} + +
+ + + {{pdMaster.fk_pd_type == '2' ? pdMaster.customer_segment_abbr == 'SAL' ? 'Salary FI' : 'Business FI' : pdMaster.pd_type_name}} + +
+ + + + + + {{mainApplicant.company_name}} + + +
+ + + {{pdMaster.product_name}} + / {{applicatentDetails.subproduct_name}} + +
+ + + {{pdMaster.fin_institute_name}} + + +
+ +
+ Address {{i+1}} + +
+ +
{{status.vendor_status}} 
+ +
+
+ + + + {{addr.addressline1}}
+ {{addr.city_name}}
+ {{addr.state_name}} + -{{addr.pincode}} + -{{addr.other_pincode}}
+
+
+ where_to_vote +
+ + + Scheduled On
+ + {{status.scheduled_on}} + + + + + + + + + + + + + +
+
+
+ + +
+ + + + Schedule Date
+ + + + +
+
+
+ + +   Scheduled On
+ {{address_allocated_data.scheduled_on}} +
+
+ + + + +
+
+ + + + +
Applicant {{i+1}}
+
+ + +   {{other_app.applicant_name | titlecase}} + + + + +   {{other_app.mobile_no}} + + + + + + +   {{other_app.company_name}} + + +
+
+

+ + + + +
+ + +
Document to be photographed/scanned
+
+ +
+ +
+
+
+

+ + +
Remarks
+
+ + + +

+ + + +
+ + + + + + + Schedule + + + + + + + + + + Reject + + + + Accept + + + + + + + + + + INITIATE + + + + + Re Schedule + + + + + + + + Start + + + + + + + \ No newline at end of file diff --git a/src/app/pages/pd/input/input.scss b/src/app/pages/pd/input/input.scss new file mode 100755 index 0000000..a0fae00 --- /dev/null +++ b/src/app/pages/pd/input/input.scss @@ -0,0 +1,159 @@ +// page-input{ + .example-form { + min-width: 150px; + max-width: 500px; + width: 100%; + } + ion-row{ + // width: 100%; + padding: 0px !important; + margin: 0px; + } + .example-full-width { + width: 100%; + } + .cusicon{ + padding-top: 36px; + font-size: 23px; + color: #3272b2; + } + mat-grid-tile { + background: white!important; + } + + .fadeIn { + animation-name: fadeIn; + animation-duration: 15s; + transition: all 0.5s cubic-bezier(.36,-0.64,.34,1.76); + } + @font-face{ + font-family: Roboto; + src: url('../../../../assets/fonts/Roboto-Bold.ttf')!important; + } + h1{ + margin: 2px 0; + font-size: 1.6rem; + font-weight: bold!important; + color:#3272b2; + } + .box{ + box-shadow: 0 5px 20px 0 rgba(0,0,0,.2),0 13px 24px -11px rgba(50, 114, 178, 0.59) !important; + } + ion-content{ + --background: #eee !important; + // padding:0px !important; + } + .mat-card{ + // border-top: 3px solid rgba(50, 114, 178, 0.78); + padding: 7px 16px !important; + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2) !important; + + + } + + .mat-card-title{ + margin-bottom: 0px; + } + + .button-md-primary { + background-color: #E00201 !important; + margin-bottom: 0px !important; + height: 50px; + } + + .mat-raised-button{ + border-radius: 30px; + padding: 19px 45px; + line-height: 0px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + + .fab-md-optblue{ + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2) !important; + } + // ion-footer{ + // position: absolute; + // } + .cardinfo + { + font-size: 19px!important; + color:black; + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif + // padding-bottom: 30px!important; + //text-align: center + // padding-top:15px !important; + } + .addressinfo{ + font-size: 19px!important; + //padding-bottom: 30px!important; + } + .schdule_time{ + font-size:117%; + } + .schdul{ + // border:2px solid black; + border-radius: 5px; + color:red; + //background-color: blue; + //border-block-end-color: green; + padding-bottom:20px; + //background-color: blueviolet + } + ion-input { + color:red; + background-color: lightgray; + padding-left:10px; + font-weight: bold + } + ion-label{ + font-weight: bold; + } + + .input-cover{position: static;} + + .leaveDays{color:red}; + ion-icon{ + font-size: 120%; + } + .status{ + color:#E00201; + // float: right; + // text-align: right; + //background-blend-mode: color-burn; + //background-color:lavender; + border:2px solid darkmagenta; + padding:4px; + border-radius: 10px; + font-size: 15px; + } + .inprogress_btn{ + + position: relative; + left:80%; + // top: 50%; + bottom:50%; + } + .doc-image-bucket{ + padding:0 5px 0 0 !important; + height: 180px !important; + color:black; + } +.doc_icon{ + + height: 180px; + width: 100px; +} +hr { + border-top: 0.1px solid #e0e0e0 !important; + // height: 10px !important; + // width: 500px !important; + // background: blue !important; + display: block !important; + // font-size: 2em !important; + // opacity: 1 !important; + // visibility: visible !important; +} + + + + // } \ No newline at end of file diff --git a/src/app/pages/pd/input/input.ts b/src/app/pages/pd/input/input.ts new file mode 100755 index 0000000..9f69ce0 --- /dev/null +++ b/src/app/pages/pd/input/input.ts @@ -0,0 +1,1124 @@ +import { Component,ViewChild, ElementRef } from '@angular/core'; +import { NavController,AlertController, IonContent,ModalController } from '@ionic/angular'; +import { FormBuilder } from '@angular/forms'; +// import {MomentDateAdapter} from '@angular/material-moment-adapter'; +// import {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core'; +// import {MatDatepicker} from '@angular/material/datepicker'; +import { StatusBar } from '@ionic-native/status-bar/ngx'; +import { Platform } from '@angular/cdk/platform'; +import {LaunchNavigator } from '@ionic-native/launch-navigator/ngx'; +// import { AuthPage } from '../auth/auth'; + +import { PdtriggerProvider } from '../../../services/pdtrigger/pdtrigger'; +import { AwsServiceProvider } from '../../../services/aws-service/aws-service'; +// import { PdListPage } from '../pd-list/pd-list'; +// import { OtpPage } from '../otp/otp'; + +import { Geolocation, Geoposition } from '@ionic-native/geolocation/ngx'; +import {DatePipe } from '@angular/common'; +import { LocationAccuracy } from '@ionic-native/location-accuracy/ngx'; +import { ToastProvider } from '../../../services/common-provider/toast'; +// import { observable, Observable } from 'rxjs'; +// import { ERR_PLUGIN_NOT_INSTALLED } from '@ionic-native/core'; +import { ConstantsProvider } from '../../../services/constants/constants'; +// import { PdGeneralImagesPage } from '../pd-general-images/pd-general-images'; +// import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; +// import {BouncedRejectPage} from './bounced-reject/bounced-reject' +// import {MapAddressPage} from '../../pages/map-address/map-address' + +// import {CameraProvider} from '../../../services/common-provider/camera' ; +import {LoadingProvider} from '../../../services/common-provider/loading'; +import {StorageProvider} from '../../../services/storage/storage'; +import { QuestionCategoryProvider } from '../../../services/question-category/question-category'; +import {BackgroundGeolocation, + BackgroundGeolocationConfig, + BackgroundGeolocationResponse, + BackgroundGeolocationEvents} from '@ionic-native/background-geolocation/ngx' +import { NavigationExtras, ActivatedRoute, Router } from '@angular/router'; +import { MapAddressPage } from '../map-address/map-address'; +import { GpsService } from 'src/app/services/common-provider/gps.service'; +// import { OfficerNotesModalPage } from '../officer-notes-modal/officer-notes-modal'; + +/** + * Generated class for the InputPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ +const currentdate = new Date().toJSON().slice(0,19); + + +@Component({ + selector: 'page-input', + templateUrl: 'input.html', + styleUrls:['input.scss'] +}) + + +export class InputPage { + enableStartPD: boolean; + diffInHours: number; + updatestarted: any; + updateinitiated: any; + appdata: any; + users: any; + initiatedAccess: boolean = false; + scheduleAccess: boolean = false; +applicatentDetails:any; +maxdate :any; +pipe = new DatePipe('en-US'); +updateStatus:any; +scheduleDate:any; +updateSchedule:any; +acceptedAccess:boolean = false; +startedAccess:boolean = false; +timeOut:any = 15*1000; +timeInterval:any; +currentPosPDofficer:any; +other_applicant:any=[]; +loadDetails=false; +mainApplicant:any=[] +pdMaster:any=[] +imageDisplay: any=[]; +imageBucket: any=[]; +checkOtpAccess:boolean = false; +@ViewChild('focusinp',{static:false}) input_focus ; +@ViewChild('scroll',{static:false}) scrolltop : IonContent; + addresses: any=[]; + address_pd_id: any; + address_pd_status: any=''; + address_allocated_data:any + add_requirements:any; + requirement_hide: boolean=true; + docs_collected: any; + docs_collected_hide: boolean=true; + // address_child_schedule_time:any; + + pd_value_params:any; + @ViewChild('childComp',{static:false}) child //PdGeneralImagesPage + @ViewChild('picContent',{static:false}) picContent:ElementRef + + + constructor(public navCtrl: NavController,public fb:FormBuilder,private actRoute: ActivatedRoute,private router:Router, + public statusBar:StatusBar,public platform: Platform,public launchNavigator:LaunchNavigator, + public aws:AwsServiceProvider,public pdDetails:PdtriggerProvider,public geolocation:Geolocation, + public alertCtrl:AlertController,public locationAccuracy:LocationAccuracy,public toast:ToastProvider, + public constant:ConstantsProvider, public modalCtrl:ModalController, + public qustCat: QuestionCategoryProvider, + private loading:LoadingProvider,public storagedb:StorageProvider,private backgroundgeolocation:BackgroundGeolocation,private gpsService:GpsService) { + + console.log("Hi Input") + // this.storagedb.clearItem('qc_notes') + + this.maxdate = this.pipe.transform(new Date(),'yyyy-MM-ddTHH:mm').toString(); + // this.maxdate=new Date().toLocaleString(); + + var date=new Date('dd'); + //console.log(date) + var curr=date.getDate()+date.getMonth()+date.getFullYear(); + console.log("today",curr) + /***Header value pass */ + // this.statusBar.styleDefault(); + + // this.statusBar.overlaysWebView(false); + // this.statusBar.backgroundColorByHexString('#db4437'); + // let timeStart:string = this.pipe.transform(new Date(),'dd/MM/yyyy hh:mm a'); + + + // this.applicatentDetails = this.navParams.get('pdDetails'); + this.actRoute.queryParams.subscribe(params=>{ + if(this.router.getCurrentNavigation().extras.state){ + this.applicatentDetails=this.router.getCurrentNavigation().extras.state.pdDetails; + console.log("inside",this.applicatentDetails); + this.pd_value_params={pd_id:this.applicatentDetails.pd_id,form_id:null,company_id:null} + } + }) + // this.getFullPD(); + + + // if(this.applicatentDetails.pd_status == 'ALLOCATED') + // { + // this.acceptedAccess = true; + // } + // if(this.applicatentDetails.pd_status == 'ACCEPTED') + // { + // this.scheduleAccess = true; + // } + // if(this.applicatentDetails.pd_status == 'SCHEDULED') + // { + + // this.initiatedAccess = true; + // } + // //console.log(this.initiatedAccess); + // if(this.applicatentDetails.pd_status == 'INITIATED') + // { + // this.startedAccess = true; + // this.getenableAccuracy(); + + // } + this.users = localStorage.getItem('pd_user_details') + this.users=JSON.parse(this.users).userid + console.log("users",this.users) + this.requirement_hide=false; + // this.getcurrentBackgroundLocation(); + } + ionViewWillEnter(){ + this.getFullPD(); + console.log("router >>>",this.actRoute,this.router.url) + console.log(this.router.getCurrentNavigation) + } + + ngOnInit() { + this.setPermission(); + console.log('ngOnInit InputPage' ); + // this.getPDImages(); + } + ionViewWillLeave() + { + clearInterval(this.timeInterval); + } + locationnavicate(index) + { + // var address_full:string=address+' ' +this.applicatentDetails.city_name+' ' +this.applicatentDetails.state_name+' '+ (this.applicatentDetails.pincode != 'Others' ? this.applicatentDetails.pincode : this.applicatentDetails.other_pincode) + let data=this.addresses[index] + var address_full:string= data.addressline1+' ' +data.city_name+' ' +data.state_name+'-'+(data.pincode != 'Others' ? data.pincode : data.other_pincode) + + this.launchNavigator.navigate(address_full); + } + + setPermission() + { + // this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION).then( + // result => console.log('Has permission?',result.hasPermission), + // err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION) + // ); + + // this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]); + + // this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then( + // result => {console.log('Has permission?',result.hasPermission);this.constant.enableAccuracy()}, + // err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then(re=>{ + // this.constant.enableAccuracy() + // }) + // ); + + // this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION, this.androidPermissions.PERMISSION.GET_ACCOUNTS]); + this.gpsService.checkGPSPermission().then(res=>{ + console.log("Gps Enabled",res) + if(res){ + } + else{ + alert("We need location access to capture the geocoordinates of your place. Please turn on the location to continue"); + // this.setPermission() + } + }) + } + + getFullPD() + { + this.storagedb.setItem(this.applicatentDetails.pd_qc_note,'qc_notes') + let pdDetails_pdid=this.applicatentDetails.is_child != '1' ? this.applicatentDetails.pd_id :this.applicatentDetails.parent_pd_id + let records = {'pdid':pdDetails_pdid,'random_string':this.applicatentDetails.random_string}; + this.pdDetails.getFullPDdetails(records).subscribe(res=> + { + if(res['dataStatus']==true){ + this.add_requirements=res['records'].pd_additional_requirements; + this.docs_collected=res['records'].docs_to_be_collected; + // this.requirement_hide=res['records'].pd_additional_requirements.length == 0 && res['records'].pd_additional_requirements ? true : false + if(res['records'].pd_additional_requirements.length == 0){ + this.requirement_hide=true; + } + else if(res['records'].pd_additional_requirements.length == 1 && res['records'].pd_additional_requirements[0].add_requirement == null){ + this.requirement_hide=true; + } + else{ + this.requirement_hide=false; + } + + if(this.docs_collected.length == 0){ + this.docs_collected_hide=true; + } + else if(this.docs_collected.length == 1 && this.docs_collected[0].doc_name == null){ + this.docs_collected_hide=true; + } + else{ + this.docs_collected_hide=false; + } + + + + this.other_applicant=res['records'].applicants_details + this.mainApplicant=res['records'].applicants_details[0] + this.pdMaster=res['records'].pd_master_details[0] + + this.addresses=res['records'].pd_address + this.address_pd_id=this.addresses.addtional_pd_data + //FOR GETTING THE ALLOCATED/SCHEDULE/INITIATE PDID + this.addresses.forEach(res=>{ + + if(res.addtional_pd_data.length != 0){ + if(res.addtional_pd_data[0].vendor_status == 'ALLOCATED' || res.addtional_pd_data[0].vendor_status == 'ACCEPTED' || res.addtional_pd_data[0].vendor_status == 'SCHEDULED' || res.addtional_pd_data[0].vendor_status == 'INITIATED' || res.addtional_pd_data[0].vendor_status == 'STARTED' || res.addtional_pd_data[0].vendor_status == 'INPROGRESS'){ + this.address_pd_id=res.addtional_pd_data[0].pd_id + this.address_pd_status=res.addtional_pd_data[0].vendor_status + this.address_allocated_data=res.addtional_pd_data[0] + + + return; + } + } + }) + //FOR CHANGING THE PD ID based on assigned pd address + //this.applicatentDetails.pd_id=this.address_pd_id + //FOR GIVING ACCESS FOR BUTTONS BASED ON pd status IN ADDRESS + if(this.address_pd_status == 'ALLOCATED') + { + this.acceptedAccess = true; + } + if(this.address_pd_status == 'ACCEPTED') + { + this.scheduleAccess = true; + } + if(this.address_pd_status == 'SCHEDULED') + { + + this.initiatedAccess = true; + } + + if(this.address_pd_status == 'INITIATED') + { + this.startedAccess = true; + this.getenableAccuracy(); + + } + if(this.address_pd_status == 'STARTED') + { + this.checkOtpAccess=true; + } + + if(this.address_allocated_data != '' && this.address_allocated_data !=undefined){ + let courrentDateTime: string = this.pipe.transform(new Date(), 'yyyy-MM-dd HH:mm'); + let scheduledDateTime: string=this.address_allocated_data.scheduled_on_for_validation; + let diffInMs: number = Date.parse(courrentDateTime) - Date.parse(scheduledDateTime); + let diffInHours: number = Math.floor(diffInMs / 1000 / 60 / 60); + console.log(diffInHours); + + if(diffInHours <-6){ + this.enableStartPD=true; + } + else + { + this.enableStartPD = false; + } + } + this.loadDetails=true + } + + }) + + } + pdStatus(status,appdetails) + { + let data :any; + + if(status == 'BOUNCED') + { + // data = {'pd_id':appdetails.pd_id,'pd_status':status,'fk_updatedby':this.users,'updatedon':currentdate}; + data = {'pd_id':this.address_pd_id,'pd_status':status,'fk_updatedby':this.users,'updatedon':currentdate,'random_string':this.applicatentDetails.random_string,'parent_pdid':this.pdMaster.parent_pd_id}; + let navigationExtras:NavigationExtras={ + state:{ + details:data + } + } + this.navCtrl.navigateForward('/pd/BouncedRejectPage',navigationExtras) + + // this.pdDetails.updatepdStatus(data).subscribe(res=> + // { + // this.updateStatus = res; + // if(this.updateStatus.dataStatus == true) + // { + // this.navCtrl.setRoot(PdListPage); + // } + // }) + }else if(status == 'ACCEPTED') + { + + data = {'pd_id':this.address_pd_id,'vendor_status':status,'fk_updatedby':this.users,'updatedon':currentdate,'random_string':this.applicatentDetails.random_string}; + this.pdDetails.updatepdStatus(data).subscribe(res=> + { + + this.updateStatus = res; + if(this.updateStatus.dataStatus == true) + { + this.getNewpdupdate(); + + this.scheduleAccess = true; + + }else + { + this.scheduleAccess = false; + } + }) + } + + } + + pdschedule(scheduledate,appdetails) + { + + let data :any;let param : any; + + if(scheduledate != undefined){ + let schDate = scheduledate.slice(0,19).replace('T',' '); + + data = {'pd_id':this.address_pd_id,'vendor_status':'SCHEDULED','scheduled_on':schDate,'fk_updatedby':this.users,'updatedon':currentdate,'random_string':this.applicatentDetails.random_string}; + // this.pdDetails.updatepdStatus(data).subscribe(res=> + //sample format : fk_pd_id: "868", schedule_time: "2019-05-30 18:51", fk_scheduled_by: "165"; + param = {'fk_pd_id': this.address_pd_id, 'schedule_time':schDate, 'fk_scheduled_by': this.users,app_client:"3"} + this.pdDetails.updateSchedule(param).subscribe(res=> + { + this.updateSchedule = res; + if(this.updateSchedule.dataStatus == true) + { + this.getNewpdupdate(); + + this.initiatedAccess = true; + } + }); + } + else{ + this.toast.pdTriggerappmessage("Please Choose the Schedule Date"); + this.input_focus.setFocus(); + //this.input_focus.scrollToTop(); + this.scrolltop.scrollToTop() + } +} + + getenableAccuracy() + { + // this.locationAccuracy.canRequest().then((canRequest: boolean) => { + + // if(canRequest) { + // // the accuracy option will be ignored by iOS + // this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then( + // () => { + // this.getcurrentLocation(); + // this.getcurrentBackgroundLocation(); + // }, + // error => alert('Error requesting location permissions'+JSON.stringify(error)) + // ); + // } + + // }); + this.gpsService.checkGPSPermission().then(res=>{ + console.log("Gps Enabled",res) + if(res){ + this.getcurrentLocation(); + this.getcurrentBackgroundLocation(); + } + else{ + alert("We need location access to capture the geocoordinates of your place. Please turn on the location to continue"); + this.getenableAccuracy() + } + }) + } + getcurrentLocation() + { + let data:any; + let options = { + frequency: 3000, + enableHighAccuracy: true, + timeOut:1000, + }; + + this.timeInterval = setInterval(()=>{ + this.currentPosPDofficer = ''; + this.geolocation.getCurrentPosition(options).then((resp) => { + // resp.coords.latitude + // resp.coords.longitude + if((resp as Geoposition).coords !=undefined){ + this.currentPosPDofficer = resp.coords.latitude+","+resp.coords.longitude; + // this.toast.pdTriggerappmessage(this.currentPosPDofficer); + + data = {'pd_id':this.address_pd_id,'link':this.currentPosPDofficer}; + + + this.pdDetails.saveCurrentLocation(data).subscribe(res=> + { + console.log("geoLocation data",data) + // this.updateinitiated = res; + // if(this.updateinitiated.dataStatus == true) + // { + // // this.getNewpdupdate(); + // // this.startedAccess = true; + // }else + // { + // this.startedAccess = false; + // } + }) + } + }).catch((error)=>{ + this.toast.pdTriggerappmessage(error.message); + }) + + },this.timeOut); + } + + getcurrentBackgroundLocation() + { + let data:any + const config:BackgroundGeolocationConfig={ + desiredAccuracy: 10, + stationaryRadius: 20, + distanceFilter: 30, + debug: false, // enable this hear sounds for background-geolocation life-cycle. + stopOnTerminate: false // enable this to clear background location settings when the app terminates + }; + + this.backgroundgeolocation.configure(config).then(()=>{ + this.backgroundgeolocation.on(BackgroundGeolocationEvents.location) + .subscribe((location:BackgroundGeolocationResponse)=>{ + //this.toast.pdTriggerappmessage("alert for loca, "+location) + + let pos=location.latitude+","+location.longitude + data = {'pd_id':this.address_pd_id,'link':pos}; + + this.pdDetails.saveCurrentLocation(data).subscribe(res=>{ + console.log("saved location in Api",res); + + },err=>{ + console.log("Not saved in Api",err); + }) + },err=>{ + console.log("Error in background geolocation subscribtion") + }) + },err=>{ + console.log("Error in background geolocation configuration") + }) + this.backgroundgeolocation.start(); + + // let data:any; + // let options = { + // frequency: 3000, + // enableHighAccuracy: true, + // timeOut:1000, + // }; + + // this.timeInterval = setInterval(()=>{ + // this.currentPosPDofficer = ''; + // this.geolocation.getCurrentPosition(options).then((resp) => { + // // resp.coords.latitude + // // resp.coords.longitude + // if((resp as Geoposition).coords !=undefined){ + // this.currentPosPDofficer = resp.coords.latitude+","+resp.coords.longitude; + // // this.toast.pdTriggerappmessage(this.currentPosPDofficer); + // + // data = {'pd_id':this.address_pd_id,'link':this.currentPosPDofficer}; + + + // this.pdDetails.saveCurrentLocation(data).subscribe(res=> + // { + // + // // this.updateinitiated = res; + // // if(this.updateinitiated.dataStatus == true) + // // { + // // // this.getNewpdupdate(); + // // // this.startedAccess = true; + // // }else + // // { + // // this.startedAccess = false; + // // } + // }) + // } + // }).catch((error)=>{ + // this.toast.pdTriggerappmessage(error.message); + // }) + + // },this.timeOut); + } + pdreschedule() + { + this.scheduleAccess = true; + this.initiatedAccess = false; + } + + + pdinitiated(appdetails) + { let data:any; + + this.locationAccuracy.canRequest().then((canRequest: boolean) => { + + if(canRequest) { + // the accuracy option will be ignored by iOS + this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then( + () => { + this.geolocation.getCurrentPosition().then((resp) => { + // resp.coords.latitude + // resp.coords.longitude + let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0] + + if(mobile_no ==undefined){ + mobile_no=this.mainApplicant.mobile_no + } + this.currentPosPDofficer = resp.coords.latitude+","+resp.coords.longitude; + data = {'pd_id':this.address_pd_id,'vendor_status':'INITIATED','mobile_no':mobile_no,'officerName':appdetails.pd_allocated_to,'firstName':this.mainApplicant.applicant_name,'fk_updatedby':this.users,'updatedon':currentdate,'link':this.currentPosPDofficer,'random_string':this.applicatentDetails.random_string}; + + + this.pdDetails.updatepdStatus(data).subscribe(res=> + { + this.updateinitiated = res; + if(this.updateinitiated.dataStatus == true) + { + this.getNewpdupdate(); + this.getcurrentLocation(); + this.getcurrentBackgroundLocation() + this.startedAccess = true; + }else + { + this.startedAccess = false; + } + }) + }).catch((error) => { + console.log('Error getting location', error); + }); + },error => alert('Error requesting location permissions'+JSON.stringify(error)) + ); + } + + },error=>{ + + alert(JSON.stringify(error)) + let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0] + + if(mobile_no ==undefined){ + mobile_no=this.mainApplicant.mobile_no + } + data = {'pd_id':this.address_pd_id,'vendor_status':'INITIATED','mobile_no':mobile_no,'officerName':appdetails.pd_allocated_to,'firstName':this.mainApplicant.applicant_name,'fk_updatedby':this.users,'updatedon':currentdate,'link': this.currentPosPDofficer,'random_string':this.applicatentDetails.random_string}; + this.pdDetails.updatepdStatus(data).subscribe(res=> + { + this.updateinitiated = res; + if(this.updateinitiated.dataStatus == true) + { + + this.getNewpdupdate(); + this.getcurrentLocation(); + this.getcurrentBackgroundLocation(); + this.startedAccess = true; + }else + { + this.startedAccess = false; + } + }) + }); + } + checkOTP(appdetails){ + let data:any; + let mobile_no=this.other_applicant.filter(val=>val.additional_pd_id == this.address_allocated_data.pd_id).map(val=>val.mobile_no)[0] + + if(mobile_no ==undefined){ + mobile_no=this.mainApplicant.mobile_no + } + data = {'pd_id':this.address_pd_id,'vendor_status':'STARTED','mobile_no':mobile_no,'fk_updatedby':this.users,'updatedon':currentdate,'link':this.currentPosPDofficer,'random_string':this.applicatentDetails.random_string }; + this.geolocation.getCurrentPosition().then((resp) => { + this.currentPosPDofficer = resp.coords.latitude+","+resp.coords.longitude; + + +this.pdDetails.updatepdStatus(data).subscribe(res=> +{ + this.updatestarted = res; +if(this.updatestarted.dataStatus == true) +{ + //appdetails.pd_id=this.address_pd_id + //clearInterval(this.timeInterval); + + //this.navCtrl.setRoot(OtpPage,{'pdDetails':appdetails}); + this.getNewpdupdate(); + this.startedAccess=false +// this.checkOtpAccess=true +this.startPdDiscussion() + +} +else{ + this.checkOtpAccess=false +} + +},err=>alert(JSON.stringify(err))); + // console.log('Buy clicked'); + },err=>{ + alert("Cordova Error " +JSON.stringify(err)) + this.updateStartedStatus(data) + }) + } + + updateStartedStatus(data) { + this.pdDetails.updatepdStatus(data).subscribe(res=> + { + this.updatestarted = res; + if(this.updatestarted.dataStatus == true) + { + //appdetails.pd_id=this.address_pd_id + //clearInterval(this.timeInterval); + + //this.navCtrl.setRoot(OtpPage,{'pdDetails':appdetails}); + this.getNewpdupdate(); + this.startedAccess=false + this.checkOtpAccess=true + + } + else{ + this.checkOtpAccess=false + } + + }) + } + + async startPdDiscussion() + { + + // let data:any; + let alert = await this.alertCtrl.create({ + header: 'Start Discussion', + message: 'Are you starting the Discussion', + buttons: [ + { + text: 'No', + role: 'cancel', + handler: () => { + + + } + }, + { + text: 'YES', + handler: () => { + // this.geolocation.getCurrentPosition().then((resp) => { + // this.currentPosPDofficer = resp.coords.latitude+","+resp.coords.longitude; + + // data = {'pd_id':this.address_pd_id,'pd_status':'STARTED','mobile_no':this.mainApplicant.mobile_no,'fk_updatedby':this.users,'updatedon':currentdate,'link': this.currentPosPDofficer }; + // console.log(data); + // this.pdDetails.updatepdStatus(data).subscribe(res=> + // {this.updatestarted = res; + // if(this.updatestarted.dataStatus == true) + // { + // appdetails.pd_id=this.address_pd_id + // clearInterval(this.timeInterval); + // console.log("appdetails",appdetails) + // this.navCtrl.setRoot(OtpPage,{'pdDetails':appdetails}); + // } + + // }) + // // console.log('Buy clicked'); + // }) + clearInterval(this.timeInterval); + this.backgroundgeolocation.finish(); + this.backgroundgeolocation.stop(); + //FOR GIVING THE CORRECT ADDRESS MASTER + + //Assigning applicant details to the params + let pdValues= this.address_allocated_data + pdValues.applicat_details=this.other_applicant + // console.log("dds",this.pdMaster) + this.acceptedAccess = false; + this.initiatedAccess = false; + this.scheduleAccess = false; + this.startedAccess = false; + this.checkOtpAccess = false; + //FOR CHECKING THE OTP ENABLED FLAG IN ENTITY LEVEL + if(this.pdMaster.is_otp_enabled == "1"){ + // this.navCtrl.navigateRoot(OtpPage,{'pdDetails':pdValues}); + let navigationExtras:NavigationExtras={ + state:{ + pdDetails:pdValues + } + } + this.navCtrl.navigateForward('/pd/OtpPage',navigationExtras); + } + else{ + let data:any; + data = {'pd_id':this.address_pd_id,'vendor_status':"INPROGRESS",'fk_updatedby':this.users,'updatedon':currentdate,'random_string':this.applicatentDetails.random_string}; + this.pdDetails.updatepdStatus(data).subscribe(res=>{ + if(res['dataStatus']){ + let navigationExtras:NavigationExtras={ + state:{ + pdDetails:pdValues, + docs_collected:this.docs_collected + } + } + if(this.address_allocated_data.customer_segment_abbr == 'SAL') { + console.log("rote" , this.address_allocated_data.customer_segment_abbr) + this.navCtrl.navigateForward('/pd/pd-questions/all-ques/sal-ques',navigationExtras); + } + else { + this.navCtrl.navigateForward('/pd/pd-questions/all-ques',navigationExtras); + } + } + else{ + this.toast.pdTriggerappmessage("Something went wrong") + } + }) + } + } + } + ] + }); + await alert.present(); + } + getNewpdupdate() + { + this.loading.pdloader('Please Wait') + + this.acceptedAccess = false; + this.initiatedAccess = false; + this.scheduleAccess = false; + this.startedAccess = false; + this.checkOtpAccess = false; + this.pdDetails.getpddetails(this.users).subscribe(res=> + { + this.appdata = res; + if(this.appdata.dataStatus == true) + { + + this.applicatentDetails = this.appdata.records.filter(app=>app.pd_id == this.applicatentDetails.pd_id)[0]; + // this.address_pd_status=this.applicatentDetails + //FOR GETTING THE LATEST ADDRESS STATUS FROM getFullPDdetails + let pdDetails_pdid=this.applicatentDetails.is_child != '1' ? this.applicatentDetails.pd_id :this.applicatentDetails.parent_pd_id + let rec_pdid = {'pdid':pdDetails_pdid,'random_string':this.applicatentDetails.random_string}; + this.pdDetails.getFullPDdetails(rec_pdid).subscribe(result=>{ + if(result['dataStatus']==true){ + this.addresses= result['records'].pd_address + result['records'].pd_address.forEach(data=>{ + if(data.addtional_pd_data.length != 0){ + if(data.addtional_pd_data[0].vendor_status == 'ALLOCATED' || data.addtional_pd_data[0].vendor_status == 'ACCEPTED' || data.addtional_pd_data[0].vendor_status == 'SCHEDULED' || data.addtional_pd_data[0].vendor_status == 'INITIATED' || data.addtional_pd_data[0].vendor_status == 'STARTED'|| data.addtional_pd_data[0].vendor_status == 'INPROGRESS'){ + // this.address_pd_id=data.addtional_pd_data[0].pd_id + this.address_pd_status=data.addtional_pd_data[0].vendor_status + // this.address_allocated_data=data.addtional_pd_data[0] + console.log("pd",this.address_pd_id) + return; + } + } + }) + + // if(this.applicatentDetails.pd_status == 'ALLOCATED') + // { + // this.acceptedAccess = true; + // } + // if(this.applicatentDetails.pd_status == 'ACCEPTED') + // { + // this.scheduleAccess = true; + // this.toast.pdTriggerappmessage("Accepted Successfully") + // } + // if(this.applicatentDetails.pd_status == 'SCHEDULED') + // { + // this.initiatedAccess = true; + // this.getFullPD(); + // this.toast.pdTriggerappmessage("Scheduled Successfully") + // } + + // if(this.applicatentDetails.pd_status == 'INITIATED') + // { + // this.startedAccess = true; + // this.toast.pdTriggerappmessage("Initiated Successfully") + // } + + if(this.address_pd_status == 'ALLOCATED') + { + this.acceptedAccess = true; + } + if(this.address_pd_status == 'ACCEPTED') + { + this.scheduleAccess = true; + this.toast.pdTriggerappmessage("Accepted Successfully") + } + if(this.address_pd_status == 'SCHEDULED') + { + this.initiatedAccess = true; + this.getFullPD(); + this.toast.pdTriggerappmessage("Scheduled Successfully") + } + + if(this.address_pd_status == 'INITIATED') + { + this.startedAccess = true; + this.toast.pdTriggerappmessage("Initiated Successfully") + } + if(this.address_pd_status == 'STARTED'){ + this.checkOtpAccess=true; + } + + } + }) + } + this.loading.dismissLoader() + }) + + + } + + camerasetup() + { + // this.navCtrl.push(PdGeneralImagesPage,{'pdDetails':this.applicatentDetails}); + let navigationExtras:NavigationExtras={ + state:{ + pdDetails:this.applicatentDetails + } + } + this.navCtrl.navigateForward('/pd/PdGeneralImagesPage',navigationExtras); + } + + inprogress(data,address_child){ + // data.pd_id=address_child.pd_id + console.log(address_child) + let pdValues=address_child + pdValues.applicat_details=this.other_applicant + let navigationExtras:NavigationExtras={ + state:{ + pdDetails:pdValues, + docs_collected:this.docs_collected + } + } + if(this.address_allocated_data.customer_segment_abbr == 'SAL') { + console.log("rote" , this.address_allocated_data.customer_segment_abbr) + this.navCtrl.navigateForward('/pd/pd-questions/all-ques/sal-ques',navigationExtras); + } + else { + this.navCtrl.navigateForward('/pd/pd-questions/all-ques',navigationExtras) + } + } + async mapAddress(values){ + // const modalOptions:ModalOptions={ + // cssClass:"mapAddress" + // } + + // const modal=this.modalCtrl.create(MapAddressPage,{'master':this.pdMaster,'address':values,'applicants':this.other_applicant},modalOptions) + // modal.present(); + // modal.onDidDismiss((data)=>{ + // console.log("datas",data) + // this.getFullPD(); + // }) + const modal=await this.modalCtrl.create({ + component:MapAddressPage, + componentProps:{'master':this.pdMaster,'address':values,'applicants':this.other_applicant}, + cssClass:"mapAddress" + }); + modal.onDidDismiss().then(data=>{ + console.log("datas",data) + this.getFullPD(); + }) + await modal.present(); + } + + inWords(e){ + return this.constant.convertNumberToWords(+e)+' Only'; + } + + /*IMAGE SECTION*/ + getPDImages(){ + //FOR RETRIEVING PICTURES + this.imageDisplay=[] + let record_for_pic = {'pd_id':this.applicatentDetails.pd_id,'form_id':null,'company_id':null,'is_common':1} + this.qustCat.getPDImages(record_for_pic).subscribe(val=>{ + + if(!val['msg']){ + // res = this.customfilter(res); + + if(val['records'].length>0){ + val['records'].forEach(result=>{ + if(result.pd_document_name != null){ + let split=result.pd_document_name.split('.') + + this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy','type':split[1]}) + } + }) + + } + } + }) + } + changeName(value,index,img){ + + this.imageDisplay[index]={'image':img,'Name':value} + + } + changeNameForBucket(value,index,img){ + this.imageBucket[index]={'image':img,'Name':value} + } + removeImg(index){ + this.imageDisplay.splice(index,1); + } + removeImgForBucket(index){ + this.imageBucket.splice(index,1) + } + + // capture(){ + + // //FOR CAPTURING PICS + // this.cameraProvider.getpicture().then(res=>{ + + // if(res != 'error'){ + // this.constant.getGeoTag().then(geoCoordinates=>{ + + + // this.imageBucket.push({'image':res,'Name':'','link':geoCoordinates}); + // //FOR GETTING THE DOC NAME FROM ALERT + // let alert =this.toast.setAlertForDocName() + // alert.present() + // alert.onDidDismiss(value=>{ + + // if(value){ + // this.imageBucket[this.imageBucket.length-1].Name=value.Name + // } + // }) + // }) + // } + + // },error=>{ + // console.log("Camera Error ",JSON.stringify(error)); + // }) + + + + // } + capture(){ + this.picContent.nativeElement.scrollIntoView({behaviour:"smooth",block:"start"}) + setTimeout(()=>{ + this.child.imageDecision() + }) + } + + + customfilter(res){ + + return res.filter(data=>data.fk_form_id != null); + } + + sendImage(){ + this.loading.loaderForSendImage() + + let records:any={ + 'pd_id':this.applicatentDetails.pd_id, + 'formid':null, + 'images':this.imageBucket, + 'company_id':null + } + + + this.qustCat.savePDImages(records).subscribe(res=>{ + if(res['dataStatus']== true){ + this.toast.pdTriggerappmessage("Image Saved Successfully") + this.imageBucket=[] + this.getPDImages(); + } + else{ + this.toast.pdTriggerappmessage('Fail'); + } + this.loading.dismissLoader(); + },err=>{ + this.loading.dismissLoader(); + }) + } + openRemarksModal(){ + console.log("function") + let params={pd_id:this.applicatentDetails.pd_id,createdby:this.users} + this.scheduleAccess=false; + let navigationExtras: NavigationExtras = { + state: { + param_data: params + } + }; + this.navCtrl.navigateForward('/pd/OfficerNotesModalPage',navigationExtras) + } + copyCusURL(randomStr) { + // console.log(window.location); + let cus_link = this.constant.environment().app_origin+'/customer/#/pd-images/'+randomStr; + console.log(randomStr) + this.copyToClipBoard(cus_link); + this.toast.pdTriggerappmessage('Customer link copied','primary'); + } + + onClickSmsLink(){ + let param={ + pd_id: this.pdMaster.pd_id, + mobile_no: this.mainApplicant.mobile_no, + random_string: this.pdMaster.random_string, + } + this.pdDetails.smsLink(param).subscribe(res=>{ + if(res['dataStatus']){ + this.toast.pdTriggerappmessage('SMS Sent Successfully','primary'); + } + }) + } + + // copy to clipboard functionality + copyToClipBoard(message) { + const selBox = document.createElement('textarea'); + selBox.style.position = 'fixed'; + selBox.style.left = '0'; + selBox.style.top = '0'; + selBox.style.opacity = '0'; + selBox.value = message; + document.body.appendChild(selBox); + selBox.focus(); + selBox.select(); + document.execCommand('copy'); + document.body.removeChild(selBox); + } + + completePDAlert() { + + return new Promise(reject=>{ + this.toast.setAlert('Complete Discussion','Please confirm you are completing the Discussion?').then(data=>{ + if(data==false){ + reject() + } + else{ + this.completePD('COMPLETED') + } + }) + }) + +} + + completePD(status:string) + { + let params = {'parent_pdid':this.pdMaster.parent_pd_id,'pd_id':this.address_pd_id,'pd_form_id':"25"} + this.qustCat.retiverForm(params).subscribe(form_check=>{ + if(form_check && form_check['dataStatus'] == false) { + this.toast.setAlertwithOKButton("Unable to complete the PD","Please complete the form and try again !!"); + return; + } + + //alert.present(); + let users = localStorage.getItem('pd_user_details') + users=JSON.parse(users).userid + this.gpsService.getGeoTag().then(geoCords=>{ + let data = {'pd_id':this.address_pd_id,'vendor_status':status,'fk_updatedby':users,'updatedon':currentdate,'random_string':this.applicatentDetails.random_string,link:geoCords}; + + this.pdDetails.updatepdStatus(data).subscribe(res=> + { + this.updateStatus = res; + if(this.updateStatus.dataStatus == true ) + { + if(this.updateStatus.status == 200) { + this.toast.pdTriggerappmessage("Completed Successfully !!!"); + this.getNewpdupdate(); + setTimeout(()=>{ + this.navCtrl.pop() + },3000) + } + else if(this.updateStatus.status == 304) { + let msg = this.updateStatus.hasOwnProperty('msg') && this.updateStatus.msg ? this.updateStatus.msg : "Form not filled yet. Please do this first !!" + this.toast.pdTriggerappmessage(msg); + } + }else + { + } + + }) + },err=>{ + console.log("Problem while getting geo location.",err) + alert("Problem getting geolocation. Make sure the location is turned on") + }) +}) + +} + +} diff --git a/src/app/pages/pd/map-address/map-address.html b/src/app/pages/pd/map-address/map-address.html new file mode 100755 index 0000000..bc2821d --- /dev/null +++ b/src/app/pages/pd/map-address/map-address.html @@ -0,0 +1,41 @@ + + + + + + +
+ {{pageTitle}}


+ + + Select + {{data.abbr}} + + + + + Select + {{data.applicant_name}} + + + + + +
+ + Submit + Cancel + +
+
diff --git a/src/app/pages/pd/map-address/map-address.scss b/src/app/pages/pd/map-address/map-address.scss new file mode 100755 index 0000000..6eb3cdc --- /dev/null +++ b/src/app/pages/pd/map-address/map-address.scss @@ -0,0 +1,8 @@ +// page-map-address { + .mat-form-field{ + width: 100%; + + padding: 0 10px 0 10px; + } + +// } diff --git a/src/app/pages/pd/map-address/map-address.ts b/src/app/pages/pd/map-address/map-address.ts new file mode 100755 index 0000000..d52ece3 --- /dev/null +++ b/src/app/pages/pd/map-address/map-address.ts @@ -0,0 +1,104 @@ +import { Component } from '@angular/core'; +import { NavController, NavParams, ModalController } from '@ionic/angular'; +import {QuestionCategoryProvider} from '../../../services/question-category/question-category' +import { FormGroup,FormBuilder, Validators } from '@angular/forms'; +import{AwsServiceProvider} from '../../../services/aws-service/aws-service' +import {PdtriggerProvider} from '../../../services/pdtrigger/pdtrigger' +import {ToastProvider} from '../../../services/common-provider/toast' + + +/** + * Generated class for the MapAddressPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + +@Component({ + selector: 'page-map-address', + templateUrl: 'map-address.html', + styleUrls:['map-address.scss'] +}) +export class MapAddressPage { + cus_seg:any=[] + addressMapping:FormGroup + mobileDisable:boolean=false; + master:any=[] + addressData:any=[] + applicants:any=[] + pageTitle="Choose customer segment For this PD address" + constructor(public modalCtrl: ModalController, public navParams: NavParams,private qustCat:QuestionCategoryProvider, + private fb:FormBuilder,private aws:AwsServiceProvider,private pdTrigger:PdtriggerProvider,private toast:ToastProvider) { + +this.master=this.navParams.get('master') +this.addressData=this.navParams.get('address') +this.applicants=this.navParams.get('applicants') +console.log("d",this.master,'kd',this.applicants,'dks',this.applicants); + this.addressMapping=this.fb.group({ + fk_customer_segment:[''], + pd_co_applicant_id:[''], + mobile_no:[''] + }) + this.dropDown(); + + } + + ngOnInit() { + console.log('ngOnInit MapAddressPage'); + } + updateMobile(data){ + + let mobile=this.applicants.filter(val=>val.pd_co_applicant_id==data.pd_co_applicant_id).map(val=>val.mobile_no)[0] + console.log(mobile) + if(mobile != '' && mobile != null){ + this.addressMapping.controls['mobile_no'].setValue(mobile) + this.addressMapping.controls['mobile_no'].clearValidators(); + this.addressMapping.controls['mobile_no'].updateValueAndValidity(); + this.mobileDisable=true + } + else{ + + this.addressMapping.controls['mobile_no'].setValue('') + this.addressMapping.controls['mobile_no'].setValidators(Validators.compose([Validators.required])); + this.addressMapping.controls['mobile_no'].updateValueAndValidity(); + this.mobileDisable=false + } + } + dropDown(){ + this.qustCat.getCustomersDetails().subscribe(res=>{ + if(res['dataStatus']== true){ + this.cus_seg=res['records'] + } + }) + } + cancel(){ + this.modalCtrl.dismiss(); + } + submit(values){ + if(this.addressMapping.invalid){ + this.toast.pdTriggerappmessage("Please Fill all the Fields"); + return; + } + let users = localStorage.getItem('pd_user_details') + users=JSON.parse(users).userid + let update_records={"pd_id":null,"parent_pd_id":this.master.parent_pd_id,"fk_address_id":this.addressData.pd_address_id,"pd_status":"ACCEPTED","fk_updatedby":users, + "fk_customer_segment":values.fk_customer_segment, + "pd_co_applicant_id":values.pd_co_applicant_id, + "mobile_no":values.mobile_no, + 'random_string':this.master.random_string + } + console.log("update",update_records); + this.pdTrigger.updatepdStatus(update_records).subscribe(res=>{ + if(res['dataStatus']==true){ + this.toast.pdTriggerappmessage("Saved Successfully.."); + this.modalCtrl.dismiss(); + } + else{ + this.toast.pdTriggerappmessage("Something went wrong!!") + } + },err=>{ + console.log("Error",JSON.stringify(err)) + }) + } +} diff --git a/src/app/pages/pd/officer-notes-modal/officer-notes-modal.html b/src/app/pages/pd/officer-notes-modal/officer-notes-modal.html new file mode 100755 index 0000000..2233595 --- /dev/null +++ b/src/app/pages/pd/officer-notes-modal/officer-notes-modal.html @@ -0,0 +1,51 @@ + + + + + + Notes for QC Officer + + + + + + + + + + Save   + Cancel + + + + + + + + + Officer Notes + + + +
+
+

{{data.log_time}} |  {{data.createdby | titlecase}}
+ {{data.remark | titlecase}} +

+
+
+
+ + + Notes + + + + diff --git a/src/app/pages/pd/officer-notes-modal/officer-notes-modal.scss b/src/app/pages/pd/officer-notes-modal/officer-notes-modal.scss new file mode 100755 index 0000000..9888ae0 --- /dev/null +++ b/src/app/pages/pd/officer-notes-modal/officer-notes-modal.scss @@ -0,0 +1,37 @@ +// page-officer-notes-modal { + .even{ + background-color: aliceblue; + margin-top:6px; + border: 2px solid rgb(232, 242, 250); + border-radius: 8px; + padding:0.5px 2px 0.5px 10px; + // color:grey; + } + .odd{ + // background-color: antiquewhite; + background-color: white; + border: 2px solid rgb(253, 253, 253); + border-radius: 8px; + padding:0.5px 2px 0.5px 10px; + // text-align: center; + margin-top:6px; + } + .p_tag_remark{ + font-family: 'Times New Roman', Times, serif; + // color:gray; + font-size: 14px; + } + .remark_all{ + font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif; + font-size:16px; + } + .footer{ + padding: 10px 0 0 20px; + --background: #eee; + } + ion-content{ + --background: #eee; + padding:7px; + } + +// } diff --git a/src/app/pages/pd/officer-notes-modal/officer-notes-modal.ts b/src/app/pages/pd/officer-notes-modal/officer-notes-modal.ts new file mode 100755 index 0000000..33cae4d --- /dev/null +++ b/src/app/pages/pd/officer-notes-modal/officer-notes-modal.ts @@ -0,0 +1,129 @@ +import { Component, ViewChild, Input } from '@angular/core'; +import { NavController, ModalController } from '@ionic/angular'; +// import { QuestionCategoryProvider } from '../../../services/question-category/question-category'; +import { PdtriggerProvider } from '../../../services/pdtrigger/pdtrigger'; +import { ToastProvider } from '../../../services/common-provider/toast'; +import { StorageProvider } from '../../../services/storage/storage'; +import { Router, ActivatedRoute } from '@angular/router'; + +/** + * Generated class for the OfficerNotesModalPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + +// @IonicPage() +@Component({ + selector: 'page-officer-notes-modal', + templateUrl: 'officer-notes-modal.html', + styleUrls:['officer-notes-modal.scss'] +}) +export class OfficerNotesModalPage { + qc_notes:any; + param_data:any; + schedule_notes:boolean; + newNotes:any; + display_new_notes:any=[] + @Input() values:any; + @ViewChild('content',{static:false}) content:any; + + constructor(public navCtrl: NavController,private router:Router,private actRoute:ActivatedRoute, + private pdTrigger:PdtriggerProvider, + private toastService:ToastProvider,private modalCtrl:ModalController,private storage:StorageProvider) { + // if(this.navParams.get('values') != undefined){ + // this.param_data=this.navParams.get('values'); //FOR QC NOTES IN DISCUSSION + // this.schedule_notes=false + // } + // else if(this.navParams.get('param_data') != undefined){ + // this.param_data=this.navParams.get('param_data'); //FOR OFFICER REMARKS IN SCHEDULE SCREEN + // this.schedule_notes=true + // } + + this.actRoute.queryParams.subscribe(re=>{ + console.log(this.router.getCurrentNavigation(),re) + if(this.router.getCurrentNavigation() != null){ + if(this.router.getCurrentNavigation().extras.state.values){ + this.param_data=this.router.getCurrentNavigation().extras.state.values; //FOR QC NOTES IN DISCUSSION + this.schedule_notes=false + }else if(this.router.getCurrentNavigation().extras.state.param_data){ + this.param_data=this.router.getCurrentNavigation().extras.state.param_data; //FOR OFFICER REMARKS IN SCHEDULE SCREEN + this.schedule_notes=true + } + } + else{ + this.param_data = this.values + } + + console.log("param",this.param_data,this.schedule_notes); + }) + // console.log(this.navParams.get('param_data')) + // this.qc_notes=this.param_data.hasOwnProperty('pd_qc_note') ? this.param_data.pd_qc_note : '' + this.storage.getItem('qc_notes').then(result=>{ + console.log("Local",result) + if(result){ + this.qc_notes=result + } + else{ + this.qc_notes='' + } + }) + } + + ngOnInit() { + console.log('ngOnInit OfficerNotesModalPage'); + this.getRemarks(); + } + cancelModal(){ + this.modalCtrl.dismiss(); + } + saveNotes(){ + console.log(this.qc_notes,this.values); + let data:any; + data = {'pd_id':this.param_data.pd_id,'fk_updatedby':this.param_data.fk_updatedby,'random_string':this.param_data.random_string,pd_qc_note:this.qc_notes}; + this.pdTrigger.updatepdStatus(data).subscribe(res=>{ + if(res['dataStatus']){ + this.storage.setItem(this.qc_notes,'qc_notes') + this.toastService.pdTriggerappmessage("Notes Saved Successfully"); + setTimeout(()=>{ + this.modalCtrl.dismiss(); + },1000) + } + }) + } + + getRemarks(){ + if(this.schedule_notes){ + let params={pd_id:this.param_data.pd_id,flag:'ALL_REMARKS'} + this.pdTrigger.getQCLenderRemarks(params).subscribe(response=>{ + if(response['dataStatus']){ + this.display_new_notes=response['records'] + + } + else{ + this.toastService.pdTriggerappmessage(response['msg'] ? response['msg'] : 'No Records Found') + } + },err=>console.log("Network Error",err)) + // this.content.scrollToBottom(2000) + // let dimensions = this.content.getContentDimensions(); + // this.content.scrollTo(0, dimensions.scrollHeight+100, 100); + } + else{ + this.param_data=this.values + console.log(this.values) + } + } + saveRemarks(){ + console.log(this.newNotes) + let params=this.param_data + params.remark=this.newNotes + this.pdTrigger.savePDRemark(params).subscribe(response=>{ + if(response['dataStatus']){ + this.toastService.pdTriggerappmessage("Notes Saved Successfully"); + this.newNotes=''; + this.getRemarks(); + } + }) + } + +} diff --git a/src/app/pages/pd/otp/otp.html b/src/app/pages/pd/otp/otp.html new file mode 100755 index 0000000..099e67d --- /dev/null +++ b/src/app/pages/pd/otp/otp.html @@ -0,0 +1,95 @@ + + + + + + + + OTP Page + Reason Page + + + + + + + + + + + + Circle Image + + + + + +

OTP

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

{{balance_time}}

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

OTP Rejection Reason

+
+
+ +
+ + + + + + {{otp.rejection_reason}} + + + + + + +
+
+
+ + + + + +
+ +
diff --git a/src/app/pages/pd/otp/otp.scss b/src/app/pages/pd/otp/otp.scss new file mode 100755 index 0000000..606ebac --- /dev/null +++ b/src/app/pages/pd/otp/otp.scss @@ -0,0 +1,38 @@ +// page-otp { + ion-content{ + --background: #eee; + } + .mat-card{ + width: 80%; + margin-left: 10%; + margin-top: 35%; + border-radius: 10px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + h4{ + font-weight: normal; + } + button.mat-primary { + background-color: #E00201 !important; + } + .mat-raised-button{ + border-radius: 30px; + padding: 19px 45px; + line-height: 0px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + .rounded-circle { + border-radius: 50%!important; + background-image: url('../../../../assets/img/misc/avatar.jpg'); + + } + .img-fluid{ + max-width: 40%; + height: auto; + margin-top:-70px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2); + } + ion-icon{ + font-size:2.2em; + } +// } diff --git a/src/app/pages/pd/otp/otp.ts b/src/app/pages/pd/otp/otp.ts new file mode 100755 index 0000000..c8a9926 --- /dev/null +++ b/src/app/pages/pd/otp/otp.ts @@ -0,0 +1,221 @@ +import { Component } from '@angular/core'; +import { NavController, MenuController, AlertController } from '@ionic/angular'; +import { PdtriggerProvider } from '../../../services/pdtrigger/pdtrigger'; +import { ToastProvider } from '../../../services/common-provider/toast'; +import { ConstantsProvider } from '../../../services/constants/constants'; +import { AwsServiceProvider } from '../../../services/aws-service/aws-service'; +import { QuestionCategoryProvider } from '../../../services/question-category/question-category'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { Geolocation } from '@ionic-native/geolocation/ngx'; +import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; +import { NavigationExtras, ActivatedRoute, Router } from '@angular/router'; + +/** + * Generated class for the OtpPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + +@Component({ + selector: 'page-otp', + templateUrl: 'otp.html', + styleUrls: ['otp.scss'], +}) +export class OtpPage { + + + timeLimit: any; + reason_otp: any; + users: any; + timerOn: boolean = true; + balance_time: string; + otpStatus: any; + pin:any; + otpStatusAccess:boolean = true; + applicatentDetails: any; + commonImage:any; + maxtime: any=30; + //address_pd_id:any; + + reasonForm:FormGroup + constructor(public navCtrl: NavController,private actRoute:ActivatedRoute,private router:Router,public pddetails:PdtriggerProvider,public toast:ToastProvider,public Menu:MenuController,public commonconstant:ConstantsProvider,public aws:AwsServiceProvider,public alertCtrl:AlertController,public qustCat:QuestionCategoryProvider,public fb:FormBuilder,public geolocation:Geolocation,public androidPermissions:AndroidPermissions) { + this.commonImage = this.commonconstant.commonimage; + // this.applicatentDetails = this.navParams.get('pdDetails'); + this.actRoute.queryParams.subscribe(params=>{ + if(this.router.getCurrentNavigation().extras.state){ + this.applicatentDetails=this.router.getCurrentNavigation().extras.state.pdDetails; + console.log("inside",this.applicatentDetails); + } + }) + // this.address_pd_id=this.navParams.get('address_pd_id') + this.users = localStorage.getItem('pd_user_details') + this.users=JSON.parse(this.users).userid + + this.reasonForm = this.fb.group( + { + reason:[null,Validators.compose([Validators.required])], + others_reason:[null], + }) + + this.getDropdown(); + } + + ngOnInit() { + console.log('ngOnInit OtpPage'); + } + ionViewDidEnter(){ + //this.Menu.enable(false); + this.setPermission(); + this.timer(120); + + } + + setPermission() + { + this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION).then( + result => console.log('Has permission?',result.hasPermission), + err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION) + ); + + this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]); + + this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then( + result => console.log('Has permission?',result.hasPermission), + err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION) + ); + + this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_FINE_LOCATION, this.androidPermissions.PERMISSION.GET_ACCOUNTS]); + } + ionViewWillLeave(){ + //this.Menu.enable(true); + clearTimeout(this.timeLimit); + } + getDropdown() + { + this.qustCat.getcommondrop('OTPREJECTION').subscribe(res=> + { + if(res['dataStatus']==true) + { + this.reason_otp = res['records'].filter(otp=>otp.isactive==1); + console.log(this.reason_otp); + + } + }) + } + checkotp(otp) + { + //console.log("Otp",otp) + let data = {'pd_id':this.applicatentDetails.pd_id,'OTP':otp,'fk_updatedby':this.users}; + this.pddetails.checkotp(data).subscribe(res=> + { + //console.log("Otp",res) + this.otpStatus = res; + if(this.otpStatus.dataStatus == true) + { + let navigationExtras:NavigationExtras={ + state:{ + 'pdDetails':this.applicatentDetails + } + } + this.navCtrl.navigateForward('/pd/pd-questions/all-ques',navigationExtras); + }else + { + this.toast.pdTriggerappmessage('Enter the Correct OTP'); + } + }) + } + + async timer(remaining) { + // console.log(remaining); + let m:any = Math.floor(remaining / 60); + let s:any = remaining % 60; + + m = m < 10 ? '0' + m : m; + s = s < 10 ? '0' + s : s; + // var balance_time = m + ':' + s; + this.balance_time = m + ':' + s; + remaining -=1; + // console.log(this.balance_time); + if(remaining >= 0 && this.timerOn) { + this.timeLimit = setTimeout(()=> { + this.timer(remaining); + }, 1000); + return; + } + + if(!this.timerOn) { + // Do validate stuff here + return; + } + + // Do timeout stuff here + + let data:any; + let alert = await this.alertCtrl.create({ + header: 'OTP Expired ', + message: 'Do you want to resend the OTP ? ', + buttons: [ + { + text: 'Start PD Without OTP', + + handler: () => { + + this.otpStatusAccess = false; + } + }, + { + text: 'Resend OTP', + handler: () => { + + this.geolocation.getCurrentPosition().then((resp) => { + let currentPosPDofficer = resp.coords.latitude+","+resp.coords.longitude; + data = {'pd_id':this.applicatentDetails.pd_id,'pd_status':'STARTED','mobile_no':this.applicatentDetails.applicat_details[0].mobile_no,'fk_updatedby':this.users,'link':currentPosPDofficer,'random_string':this.applicatentDetails.random_string}; + console.log(data); + this.pddetails.updatepdStatus(data).subscribe(res=> + { + this.timer(60); + }) + }); + // console.log('Buy clicked'); + + } + } + + ] + + }); + await alert.present(); + } + + saveotpreasno() + { + console.log(this.reasonForm.value); + if(this.reasonForm.valid) + { + let data = {'pd_id':this.applicatentDetails.pd_id,'reason':this.reasonForm.value.reason,'other_reason':this.reasonForm.value.others_reason,'fk_updatedby':this.users}; + this.pddetails.checkotp(data).subscribe(res=> + { + this.otpStatus = res; + if(this.otpStatus.dataStatus == true) + { + // {'pdDetails':this.applicatentDetails} + let navigationExtras:NavigationExtras={ + state:{ + 'pdDetails':this.applicatentDetails + } + } + this.navCtrl.navigateForward('/pd/pd-questions/all-ques',navigationExtras); + }else + { + // this.toast.pdTriggerappmessage('Enter the Correct OTP'); + } + }) + }else + { + this.toast.pdTriggerappmessage('Enter The All Field'); + } + } + +} diff --git a/src/app/pages/pd/pd-allocation/pd-allocation.html b/src/app/pages/pd/pd-allocation/pd-allocation.html new file mode 100755 index 0000000..20753ec --- /dev/null +++ b/src/app/pages/pd/pd-allocation/pd-allocation.html @@ -0,0 +1,145 @@ + + + + PD Listing + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +

{{pdFullDetails.lender_full_name}}

+
+ + + {{pdFullDetails.city_name}} / -{{pdFullDetails.pincode}} + +
+
+
+ +

Product

+

{{pdFullDetails.product_name}} / {{pdFullDetails.subproduct_name}}.

+

{{pdFullDetails.pd_type_name}}

+

{{pdFullDetails.pd_allocated_to}}

+
{{pdFullDetails.pd_date_of_initiation}}
+
+

+ + +

{{pdFullDetails.pd_status_name}}

+
+ +

{{pdFullDetails.loan_amount}}

+
+
+
+
+
+ + +
+ +

Applicants

+
+
+
+
+ + + +   {{Mainapplicatent.applicant_name}} (Main) + + +  {{Mainapplicatent.mobile_no}} + + + + +   {{Mainapplicatent.applicant_name}} + + +  {{Mainapplicatent.mobile_no}} + + + +
+ + +
+ + + +
\ No newline at end of file diff --git a/src/app/pages/pd/pd-allocation/pd-allocation.scss b/src/app/pages/pd/pd-allocation/pd-allocation.scss new file mode 100755 index 0000000..db0421f --- /dev/null +++ b/src/app/pages/pd/pd-allocation/pd-allocation.scss @@ -0,0 +1,60 @@ +page-pd-allocation { + + mat-grid-tile { + background: white!important; + } + + .fadeIn { + animation-name: fadeIn; + animation-duration: 15s; + transition: all 0.5s cubic-bezier(.36,-0.64,.34,1.76); + } + @font-face{ + font-family: Roboto; + src: url('../../assets/fonts/Roboto-Bold.ttf')!important; + } + + .box{ + box-shadow: 0 5px 20px 0 rgba(0,0,0,.2),0 13px 24px -11px rgba(50, 114, 178, 0.59) !important; + } + ion-content{ + background-color: #eee !important; + padding:0px !important; + } + // .mat-card{ + // padding: 7px 16px !important; + // padding: 18px 0px 5px 18px !important; + // } + *{ + font-size: 14px; + } + .mat-card-title{ + margin-bottom: 0px; + } + .lettericon{ + background-color: cadetblue; + padding: 10px 15px 10px 15px; + border-radius: 50%; + color: #fff; + } + .mat-card-header-text{ + margin: 0px; + } + .mat-card-subtitle{ + margin-bottom:0px; + } + .mat-card-content>:last-child:not(.mat-card-footer){ + margin-top: 0px; + } + p{ + margin-top:0 !important; + margin-left: 5% !important; + } + h2{ + margin: 1px !important; + } + .mat-card{ + border-radius: 10px; + } +} + \ No newline at end of file diff --git a/src/app/pages/pd/pd-allocation/pd-allocation.ts b/src/app/pages/pd/pd-allocation/pd-allocation.ts new file mode 100755 index 0000000..d90002a --- /dev/null +++ b/src/app/pages/pd/pd-allocation/pd-allocation.ts @@ -0,0 +1,28 @@ +import { Component } from '@angular/core'; +import { NavController, NavParams } from '@ionic/angular'; + +/** + * Generated class for the PdAllocationPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + +@Component({ + selector: 'page-pd-allocation', + templateUrl: 'pd-allocation.html', +}) +export class PdAllocationPage { +pdFullDetails:any = []; + constructor(public navCtrl: NavController, public navParams: NavParams) { + + this.pdFullDetails = this.navParams.get('pdDetails'); + console.log(this.pdFullDetails); + } + + ngOnInit() { + console.log('ngOnInit PdAllocationPage'); + } + +} diff --git a/src/app/pages/pd/pd-component/pd.component.html b/src/app/pages/pd/pd-component/pd.component.html new file mode 100755 index 0000000..2c91e29 --- /dev/null +++ b/src/app/pages/pd/pd-component/pd.component.html @@ -0,0 +1,38 @@ + + + + + + +
+ + + + + {{p.title}} + + + +

App Version: {{app_version}}

+
+
+ +
+
+ +
+ + + +
diff --git a/src/app/pages/pd/pd-component/pd.component.scss b/src/app/pages/pd/pd-component/pd.component.scss new file mode 100755 index 0000000..15f4d34 --- /dev/null +++ b/src/app/pages/pd/pd-component/pd.component.scss @@ -0,0 +1,170 @@ +// right side menu +$header_color:#8835C3; +$sidemenu_color:#19152C; +#menu-right { + button { + padding-left: 16px; + } + ion-content { + background: #00d2ff; /* fallback for old browsers */ + background: -webkit-linear-gradient(to left, #3a7bd5, #00d2ff); /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to left, #3a7bd5, #00d2ff); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ + + } + .menu-inner { + width: 10vh; + } + @media screen and (orientation: landscape) { + .menu-inner { + width: 15vh; + } + } + .active-menu-item { + position: absolute; + border-top: 6px solid transparent; + border-bottom: 6px solid transparent; + border-left: 6px solid #ffffff; + } + .label { + display: flex; + align-items: center; + } + .list-md[no-lines] .item-block, + .list-md[no-lines] ion-item-options, + .list-md[no-lines] .item .item-inner, + .list-ios[no-lines] .item-block, + .list-ios[no-lines] ion-item-options, + .list-ios[no-lines] .item .item-inner { + padding: .3rem 0; + background: transparent; + color: white; + } + ion-icon { + line-height: 1; + } + } + + .icon-badge { + top: 0px; + right: 0px; + background: #E00201; + color: white; + font-size: 12px; + position: absolute; + padding: 5px 8px; + border-radius: 15px; + } + + // Sidemenu with avatar + // #menu-avatar { + .user-avatar { + max-width: 125px;height: 125px; + padding: .5em; + } + h3, + .label { + color: white; + font-weight: bold; + font-size: 14px; + } + .item { + background: transparent; + } + .menu_content{ + --background: white; + } + ion-content { + + background: #649173; /* fallback for old browsers */ + background: -webkit-linear-gradient(to left, #DBD5A4, #649173); /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to left, #DBD5A4, #649173); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ + + + } + .menu-inner { + background: rgba(255, 255, 255, .3); + } + // } + // Material Design Sidemenu + // #menu-material { + // ion-content { + // padding: 5px 15px; + + .name { + font-weight: 500; + margin-top: 0px; + margin-left: 0px; + font-size: 24px; + } + .e-mail { + margin-top: 0; + margin-bottom: 5px; + } + // } + .user-avatar { + max-width: 125px;height: 125px; + padding: .5em; + height: 12vh; + } + h3, + .label + { + color: #111; + font-weight: 500; + } + .menu-inner{ + box-shadow: 0 8px 10px -5px rgba(0,0,0,.2), 0 16px 24px 2px rgba(0,0,0,.14), 0 6px 30px 5px rgba(0,0,0,.12) !important; + } + .menu-header{ + background-image: url('../../../../assets/img/misc/sidemenubg.jpg'); + background-size: cover; + color: white; + padding-bottom: 15px; + } + .item-md{ + background-color: rgba(255, 255, 255, 0.28) !important; + } + ion-icon { + color: #111; + } + + // } + // Dark Design Sidemenu + #menu-dark{ + .sidemenuHeader{ + ion-toolbar{ + .toolbar-background{background: $sidemenu_color;border:$sidemenu_color; } + ion-buttons{ + button{color: #fff;} + } + .toolbar-content{ + ion-item{background: transparent;color: #fff; + ion-avatar{background: #fff;color:$header_color;border-radius:50%;text-align: center; + h2{margin: 0;font-size: 25px;line-height: 40px;color: $sidemenu_color;} + } + h2{font-size: 12px;font-weight: normal;} + p{font-size: 11px;font-weight: normal;color:#fff;} + } + } + } + } + .menu{background: $sidemenu_color; + ion-list{ + button{background: transparent;color: #C9C7D3;font-size: 13px; + .item-inner{border-bottom: 1px solid #474456 !important; + img{width: 30px;height: 30px;vertical-align: middle;margin-right: 10px;margin-bottom: 5px;} + } + } + } + } + + } + // *{ + // font-family: Roboto; + // font-size: 16px; + + // } + .itemBtns { + color: black; + font-size: 100%; + padding-right: 100%; } \ No newline at end of file diff --git a/src/app/pages/pd/pd-component/pd.component.spec.ts b/src/app/pages/pd/pd-component/pd.component.spec.ts new file mode 100755 index 0000000..f0454a8 --- /dev/null +++ b/src/app/pages/pd/pd-component/pd.component.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { PdComponent } from './pd.component'; + +describe('PdComponent', () => { + let component: PdComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PdComponent ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(PdComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/pd/pd-component/pd.component.ts b/src/app/pages/pd/pd-component/pd.component.ts new file mode 100755 index 0000000..5ba2cec --- /dev/null +++ b/src/app/pages/pd/pd-component/pd.component.ts @@ -0,0 +1,121 @@ +import { Component, OnInit } from '@angular/core'; +import { AppVersion } from '@ionic-native/app-version/ngx'; +import { AwsServiceProvider } from 'src/app/services/aws-service/aws-service'; +import { NavController, MenuController } from '@ionic/angular'; +import { PushOptions, PushObject, Push } from '@ionic-native/push/ngx'; + +@Component({ + selector: 'app-pd', + templateUrl: './pd.component.html', + styleUrls: ['./pd.component.scss'], +}) +export class PdComponent implements OnInit { +pages:any=[] + notificationAccess: boolean; + userDetails: any; + user_id: any; + app_version: string; + userAccess: boolean; + constructor(private appVersion:AppVersion,private aws:AwsServiceProvider,private nav:NavController,private push:Push,private menuCtrl:MenuController) { + this.pages = [ + // { title: 'Home', component: HomePage, icon: 'home' }, + { title: 'Home', icon: 'home',method:()=>this.menulist(1),id:1 }, + { title: 'My Location', icon: 'locate',method:()=>this.menulist(4),id:4 }, + { title: 'Logout', icon: 'exit',method:()=>this.menulist(2),id:2}, + { title: 'Complete List', icon: 'checkmark-circle',method:()=>this.menulist(3),id:3} + + ]; + this.notificationAccess=false + this.getuserDetails() + } + + ngOnInit() { + this.appVersion.getVersionNumber().then(versionNumber=>{ + console.log("Version Number :",versionNumber) + this.app_version=versionNumber; + },err=>{ + console.log("Version Error",err); + }) + } + getuserDetails() + { + this.userDetails='' + + let userid = this.aws.getlocale(); + this.user_id=userid + this.aws.getuserprofile(userid).subscribe(res=>{ + this.userDetails = res; + if(this.userDetails.dataStatus == true) + { + this.notificationAccess=true + // console.log("Inside user details notification access value",this.notificationAccess) + this.userAccess = true; + this.userDetails = this.userDetails.records[0]; + localStorage.setItem("pd_user_details",JSON.stringify(this.userDetails)) + // this.notification() + + } + + }); + } + menulist(id){ + // alert("hi"); + switch(id) + { + case 1: + this.nav.navigateRoot('/pd'); + break; + case 2: + console.log("Logout function called"); + this.aws.logout().subscribe(()=>{ + this.unregisterNotification() + this.nav.navigateRoot('/'); + }); + break; + case 3: + this.nav.navigateForward('/pd/CompleteListPage'); + break; + case 4: + this.nav.navigateForward('/pd/GoogleMapPage'); + break; +} +this.menuCtrl.close() +} + logout() + { + // this.aws.logout(); + this.nav.navigateRoot('/'); + } + unregisterNotification(){ + console.log("unregister Notification function"); + const option:PushOptions={ + android:{ + // senderID:'893175418100' + senderID:'906855209078', + sound: true, + vibrate: true, + }, + ios: { + alert: 'true', + badge: true, + sound: 'true' + }, + windows: {}, + browser: { + pushServiceURL: 'http://push.api.phonegap.com/v1/push' + } + } + const pushObject:PushObject=this.push.init(option); + pushObject.on('unregister').subscribe(res=>{ + console.log("Notification Unregistered Successfully",res) + },err=>{ + console.log("Error in disabling notification",err) + }) + pushObject.unregister().then(res=>{ + console.log("unregister notification on unregister function",res); + }) + this.push.hasPermission().then(res=>{ + console.log("Push permission",res); + }) + } +} diff --git a/src/app/pages/pd/pd-general-images/Pd-general-images.module.ts b/src/app/pages/pd/pd-general-images/Pd-general-images.module.ts new file mode 100755 index 0000000..1ae9b43 --- /dev/null +++ b/src/app/pages/pd/pd-general-images/Pd-general-images.module.ts @@ -0,0 +1,56 @@ +import { NgModule } from "@angular/core"; + +import { MatButtonModule, MatButtonToggleModule, MatCardModule, MatCheckboxModule, MatChipsModule, MatDatepickerModule, MatDialogModule, MatListModule, MatExpansionModule, MatGridListModule, MatIconModule, MatInputModule, MatMenuModule, MatNativeDateModule, MatPaginatorModule, MatProgressBarModule, MatProgressSpinnerModule, MatRadioModule, MatRippleModule, MatSelectModule, MatSidenavModule, MatSliderModule, MatSlideToggleModule, MatSnackBarModule, MatSortModule, MatTableModule, MatTabsModule, MatAutocompleteModule, MatToolbarModule, MatTooltipModule, MatStepperModule } from "@angular/material"; + +import { PdGeneralImagesPage } from "./pd-general-images"; +import { ReactiveFormsModule, FormsModule } from "@angular/forms"; +import { BrowserModule } from "@angular/platform-browser"; +import { IonicModule } from "@ionic/angular"; +// import { MyApp } from "../../app/app.component"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { HttpClientModule } from "@angular/common/http"; +import { NgxIonicImageViewerModule } from 'ngx-ionic-image-viewer'; +import { CommonModule } from '@angular/common'; + + +@NgModule({ + imports: [ReactiveFormsModule,FormsModule,CommonModule, + IonicModule, + MatAutocompleteModule, + MatButtonModule, + MatButtonToggleModule, + MatCardModule, + MatCheckboxModule, + MatChipsModule, + MatDatepickerModule, + MatDialogModule,MatListModule, + MatExpansionModule, + MatGridListModule, + MatIconModule, + MatInputModule, + MatListModule, + MatMenuModule, + MatNativeDateModule, + MatPaginatorModule, + MatProgressBarModule, + MatProgressSpinnerModule, + MatRadioModule, + MatRippleModule, + MatSelectModule, + MatSidenavModule, + MatSliderModule, + MatSlideToggleModule, + MatSnackBarModule, + MatSortModule, + MatTableModule, + MatTabsModule, + MatToolbarModule, + MatTooltipModule, + MatStepperModule,HttpClientModule,NgxIonicImageViewerModule], + exports: [PdGeneralImagesPage], + declarations: [PdGeneralImagesPage], + providers: [], + }) + export class PdGeneralImagesModule { + } + \ No newline at end of file diff --git a/src/app/pages/pd/pd-general-images/pd-general-images.html b/src/app/pages/pd/pd-general-images/pd-general-images.html new file mode 100755 index 0000000..626a8ac --- /dev/null +++ b/src/app/pages/pd/pd-general-images/pd-general-images.html @@ -0,0 +1,119 @@ + + + + +
PD Photos
+
+ + No Documents Found. Press the camera button above to capture + + + + +
{{image.Name}}
+ +
+ +
+ + + +
+
+
+
+
+
+ + + + +

+ + + + +
+ + + + +
+ + +
+
+ + + +
+
+
+ + +
+
+
+
+
+
+
+ + +
\ No newline at end of file diff --git a/src/app/pages/pd/pd-general-images/pd-general-images.scss b/src/app/pages/pd/pd-general-images/pd-general-images.scss new file mode 100755 index 0000000..a6d0442 --- /dev/null +++ b/src/app/pages/pd/pd-general-images/pd-general-images.scss @@ -0,0 +1,24 @@ +// page-pd-general-images { + /*FOR IMAGES*/ + .doc-image-bucket{ + // padding:0 5px 0 0 !important; + // height: 180px !important; + width: 120px; + height: 100px !important; + border: 1px solid lavender; + border-radius: 4px; + color:black; + //width:130px; + //border:3px solid black; + //border-radius: 20px; + //background-color: gray; +} +input{ + width: 100px; + border-radius: 4px; + border-color: gray; + // font-size: 12px; + height: 28px; + + } +// } diff --git a/src/app/pages/pd/pd-general-images/pd-general-images.ts b/src/app/pages/pd/pd-general-images/pd-general-images.ts new file mode 100755 index 0000000..3afbe7e --- /dev/null +++ b/src/app/pages/pd/pd-general-images/pd-general-images.ts @@ -0,0 +1,636 @@ +import { Component, ViewChild, Input, ElementRef,OnDestroy, HostListener, Output, EventEmitter } from '@angular/core'; +import { NavController, ModalController } from '@ionic/angular'; +import { CameraProvider } from '../../../services/common-provider/camera'; +import { QuestionCategoryProvider } from '../../../services/question-category/question-category'; +import { ToastProvider } from '../../../services/common-provider/toast'; +import { LoadingProvider } from '../../../services/common-provider/loading'; +import { ConstantsProvider } from '../../../services/constants/constants'; +import * as watermark from 'watermarkjs' +// import { ImageNameModelPage } from '../Modal/image-name-model/image-name-model'; +import { StorageProvider } from '../../../services/storage/storage'; +import { ImageNameModelPage } from '../Modal/image-name-model/image-name-model'; +import { DocumentScanner, DocumentScannerOptions } from '@ionic-native/document-scanner/ngx'; +/** + * Generated class for the PdGeneralImagesPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + + +@Component({ + selector: 'page-pd-general-images', + templateUrl: 'pd-general-images.html', + styleUrls:['pd-general-images.scss'] +}) +export class PdGeneralImagesPage { + + cameraArr:any = []; + applicatentDetails: any; + count:any = 0; + saveAccess:boolean =false; + FormId:any = ''; + imageDisplay: any=[]; + @Input()pd_values:any; + pdDetails: any={pd_id:'',form_id:'',company_id:''}; + imageBucket:any=[] + @ViewChild('atLast',{static:false}) cardLast :ElementRef; + geoCoordinates:any='-'; + @Output() imageDatalength_forParent = new EventEmitter(); + + constructor(public navCtrl: NavController, public camera:CameraProvider,public qustCat:QuestionCategoryProvider,public toast:ToastProvider,private loading:LoadingProvider,private cameraProvider:CameraProvider,private constant:ConstantsProvider,private modalCtrl:ModalController,private ionicStorageProvider:StorageProvider + , private documentScanner:DocumentScanner) { + + // this.applicatentDetails = this.navParams.get('pdDetails'); + + + } + + + ngAfterViewInit(){ + this.pdDetails=this.pd_values + console.log("ionViewDidEnter",this.pdDetails) + this.getPDImages() + this.getPDImagesFromLocal() + console.log("avctrl",this.navCtrl) + } + + documentScanner_fun(){ + let opts: DocumentScannerOptions = {returnBase64:true,quality:3.0}; + return this.documentScanner.scanDoc(opts) + .then((res: string) => {console.log('data:image/png;base64,'+res) + let base64Img='data:image/png;base64,'+res + return base64Img + // this.imageBucket.push({image:'data:image/png;base64,' + res,Name:"New Image"}) + }) + .catch((error: any) => {console.error(error);return 'error'}); + } + // takePicture() + // { + // this.camera.getpicture().then(image=> + // { + // this.count = this.count+1; + + // this.cameraArr.push({'image':image,'name':''}); + // }); + // } + + // removeimage(i) + // { + // this.count = this.count - 1; + // this.cameraArr.splice(i,1); + // } + + // docnames(doc,i,img) + // { + + // this.cameraArr[i] = {'image':img,'Name':doc}; + // // console.log(JSON.stringify(this.pddocdata)); + // } + // savePDImages() + // { + + // this.saveAccess = true; + // let records :any = {'pd_id':this.applicatentDetails.pd_id,'formid':''}; + // records.images = this.cameraArr; + // this.qustCat.savePDImages(records).subscribe(res=> + // { + // if(res['dataStatus']==true){ + // this.saveAccess = false; + // this.navCtrl.pop(); + // this.toast.pdTriggerappmessage('Record Saved Successfully.!'); + // } + // }) + // } + + /*IMAGE SECTION*/ + getPDImages(){ + //FOR RETRIEVING PICTURES + // this.imageDisplay=[] + let record_for_pic = {'pd_id':this.pdDetails.pd_id,'form_id':this.pdDetails.form_id,'company_id':this.pdDetails.company_id,'rental_count_id':this.pdDetails.hasOwnProperty('rental_count_id') ?this.pdDetails.rental_count_id : null,'is_common':this.pdDetails.form_id == null ? 1 : null } + this.qustCat.getPDImages(record_for_pic).subscribe(val=>{ + if(!val['msg']){ + + if(val['records'].length>0){ + + val['records'].forEach(result=>{ + if(result.pd_document_name != null){ + let split=result.pd_document_name.split('.') + + this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy','type':split[1],'is_show_report':result.is_show_report}) + } + else{ + this.imageDisplay.push({'image':result.doc_url,'Name':result.pd_document_title,'option':'dummy','type':'','is_show_report':result.is_show_report}) + } + }) + console.log("dis",this.imageDisplay); + + + //FOR TESTING PURPOSE + // this.imageBucket=[] +// let dis=this.imageDisplay.splice(1,1); +// // let dis3=this.imageDisplay.splice(1,1); +// dis[0].isLoader=true +// dis[0].isSaved=false +// // dis3[0].isLoader=true +// // dis3[0].isSaved=false +// // dis3[0].Name="ffRR" + + +// let dis1=this.imageDisplay.splice(0,1); +// dis1[0].isLoader=true +// dis1[0].isSaved=false +// dis1[0].Name="Approach to PD Location 11-12-19 Pictures" + +// // let dis4=this.imageDisplay.splice(0,1); +// // dis4[0].isLoader=true +// // dis4[0].isSaved=false +// // dis4[0].Name="Sample chekc" + +// this.imageBucket.push(dis[0]) +// this.imageBucket.push(dis1[0]) +// // this.imageBucket.push(dis3[0]) +// // this.imageBucket.push(dis4[0]) + +// console.log("buckins",this.imageBucket) +// setTimeout(()=>{ +// this.sendImage(dis[0]) +// console.log("First api called",dis) +// },7000) +// setTimeout(()=>{ +// this.sendImage(dis1[0]) +// console.log("Second api called",dis1) +// },4000) + + + let imageData={imageDisplay:this.imageDisplay,imageBucket:this.imageBucket} + this.imageDatalength_forParent.emit(imageData) + + } + } + }) + } + getPDImagesFromLocal(){ + this.ionicStorageProvider.getItem('pd_images').then(loc_result=>{ + if(loc_result){ + let local_bucket=loc_result.filter(val=>val.form_id == this.pdDetails.form_id) + console.log("local bu",local_bucket) + if(local_bucket.length > 0){ + this.imageBucket=local_bucket[0].form_value + let check_status=this.imageBucket.filter(val=>val.isSaved == false && val.isLoader == false) + if(check_status.length > 0){ + this.toast.pdTriggerappmessage("Some Images are not saved. click the upload to Save") + } + } + + } + }) + } + reSendImage(img_data,index){ + img_data.isLoader=true; + this.imageBucket[index].isLoader=true; + this.sendImage(img_data); + } + +// async imageDecision(value?){ +// let modalCtrl= await this.modalCtrl.create({ +// component:ImageNameModelPage, +// componentProps:{'image_decision':true}, +// cssClass:'imageDecisionModal', +// backdropDismiss:true +// }) +// await modalCtrl.present() +// // return new Promise((resolve,reject)=>{ +// return modalCtrl.onDidDismiss().then((data:any)=>{ +// console.log("Image Data",data); +// if(data){ +// data=data.data +// // data +// return this.capture_doc_or_img(value,data).then(res=>{ +// console.log(res) +// resolve(res) +// },err=>{ +// resolve(err) +// }) +// } +// // this.sendImage(bucket_value); +// // this.cardLast.nativeElement.scrollIntoView({behavior:"smooth",block:"start"}) +// }) +// // }) +// } +// capture_doc_or_img(value?,decision?){ +// console.log("decision",decision) +// if(decision == 'DOCUMENT'){ +// return this.documentScanner_fun().then(res=>{ +// if (res != 'error') { +// this.capture(value,res) +// } +// },error => { +// console.log("Camera Error ", JSON.stringify(error)); +// return error +// }) +// } +// else{ +// return this.cameraProvider.getpicture().then(res=>{ +// if (res != 'error') { +// this.capture(value,res) +// } +// }, error => { +// console.log("Camera Error ", JSON.stringify(error)); +// return error +// }) +// } +// } + imageDecision(value?){ + return this.cameraProvider.showImageDialog().then(image_base64=>{ + if(image_base64 != 'error'){ + this.capture(value,image_base64) + } + }) + } + capture(value?,image?) { + + console.log("value", value) + //FOR CAPTURING PICS + if(image){ + // this.cameraProvider.getpicture().then(res => { + + if (image != 'error') { + this.loading.imageWatermarkLoader() + // this.constant.getGeoTag().then(geoCoordinates=>{ + // if(geoCoordinates){ + // this.geoCoordinates=geoCoordinates + // } + // },err=>{ + // // this.loading.dismissLoader() + // }) + this.geoCoordinates=localStorage.getItem('current_coordinates') + this.cameraProvider.addWatermarks(image).then(watermarkedImage=>{ + + let bucket_value: any=[]; + if (this.pdDetails.form_id != "5") { + bucket_value = { + 'image': watermarkedImage, + 'Name': '', + 'link': this.geoCoordinates, + 'isLoader':true, + 'isSaved':false + } + } + else { + + //for address form is_show_report handle + bucket_value = { + 'image': watermarkedImage, + 'Name': '', + 'link': this.geoCoordinates, + 'is_show_report': '', + 'isLoader':true, + 'isSaved':false + } + } + + // for name given from forms + if (value && value != '' && value != undefined) { + if (this.imageBucket.length != 0 && this.pdDetails.form_id == '13') { //FOR BUSINESS FORM NAME BOARD SEEN + this.imageBucket.forEach((res, index) => { + if (res.Name == value) { + // console.log("res[index]", res[index]) + delete res[index] + } + bucket_value.Name = value + this.imageBucket.push(bucket_value) + this.sendImage(bucket_value) + // this.imageBucket.push(bucket_value); + }) + }else if(this.pdDetails.form_id == '5' && value && value != '' && value != undefined){ + bucket_value.Name=value + this.imageBucket.push(bucket_value) + this.modalForImageDet(value,bucket_value) + this.loading.dismissLoader() + return + } + else{ + // this.loading.dismissLoader() + + + bucket_value.Name = value + this.imageBucket.push(bucket_value) + this.loading.dismissLoader() + this.sendImage(bucket_value) + // this.imageBucket.push({ 'image': res, 'Name': value, 'link': geoCoordinates }); + // this.cardLast.nativeElement.scrollIntoView({behavior:"smooth",block:"start"}) + + return + } + } + + else { + bucket_value.Name = '' + // this.imageBucket.push({'image':raw_img,'Name':'','link':geoCoordinates}); + console.log("3rd", watermarkedImage) + this.imageBucket.push(bucket_value) + } + + + + // console.log("geo promise",geoCoordinates) + + //FOR GETTING THE DOC NAME FROM ALERT + if (!value || value == '' || value == undefined) { + // this.loading.dismissLoader() + // let alert = this.toast.setAlertForDocName() + // alert.present() + // alert.onDidDismiss(value => { + + // if (value) { + // this.imageBucket[this.imageBucket.length - 1].Name = value.Name + // } + // + // }) + this.modalForImageDet('',bucket_value) + } + this.loading.dismissLoader() + },err=>{ + console.log(err) + this.loading.dismissLoader() + }) + + } + } + // }, error => { + // console.log("Camera Error ", JSON.stringify(error)); + // }) + } + async modalForImageDet(doc_name?,bucket_value?){ + // const modalOption:ModalOptions={ + // cssClass:'imageNameModal' + // } + let records:any={form_id:this.pdDetails.form_id,doc_name:doc_name} + // const modalCtrl=this.modalCtrl.create(ImageNameModelPage,{'FormDet':records},modalOption) + // modalCtrl.present(); + const modalCtrl=await this.modalCtrl.create({ + component:ImageNameModelPage, + componentProps:{'FormDet':records}, + cssClass:'imageNameModal', + backdropDismiss:false + }) + await modalCtrl.present() + modalCtrl.onDidDismiss().then((data:any)=>{ + console.log("Image Data",data); + if(data){ + data=data.data + bucket_value.Name=data.doc_name + this.imageBucket[this.imageBucket.length - 1].Name = data.doc_name + if(this.pdDetails.form_id == '5'){ + bucket_value.is_show_report=data.is_show_report + this.imageBucket[this.imageBucket.length - 1].is_show_report = data.is_show_report + } + } + this.sendImage(bucket_value); + // this.cardLast.nativeElement.scrollIntoView({behavior:"smooth",block:"start"}) + }) + } + addWatermarks(base64Img){ + + return new Promise((resolve,reject)=>{ + let raw_img=base64Img + this.constant.getGeoTag().then(geoCoordinates=>{ + + let geoCords=geoCoordinates + console.log("rawimg",raw_img) + + watermark([raw_img, 'assets/img/PD_watermark.png']) + .image(watermark.image.upperRight()) + .then(img => { + raw_img = img.src; + }); + var today = new Date(); + let today_loc=today.toLocaleString('en-US', {timeZone: "Asia/Kolkata"}) + console.log(today_loc) + var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate(); + var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); + var dateTime = 'Date : '+today_loc; + let Location=`Location : `+geoCords + console.log(date) + let text=watermark.text + setTimeout(()=>{ + watermark([raw_img]) + .image(text.upperLeft(dateTime, '18px serif', '#b31105', 0.9,48)) + .then(img => { + raw_img = img.src; + console.log("2d",raw_img) + }); + setTimeout(()=>{ + + watermark([raw_img]) + .image(text.upperLeft(Location, '18px serif', '#b31105', 0.9)) + .then(img => { + raw_img=img.src + console.log("3rd",raw_img) + resolve(img.src) + }); + }) + + },1000); + }) + return raw_img + }) + + } + sendImageDummy(bucket_value){ + let records:any=[] + let loca_buck:any=[] + loca_buck=bucket_value + records={ + 'pd_id':this.pdDetails.pd_id, + 'formid':this.pdDetails.form_id, + 'images':loca_buck, + 'company_id':this.pdDetails.company_id, + 'rental_count_id':this.pdDetails.rental_count_id, + } + + setTimeout(()=>{ + console.log("bb",loca_buck,this.imageBucket,records.images); + this.imageBucket.forEach(val=>{ + console.log("response",val) + if(loca_buck[0].Name == val.Name){ + val.isLoader=false; + val.isSaved=true + return val + } + }) + },2000) + } + sendImage(bucket_value){ + let local_bucket:any=[] + local_bucket.push(bucket_value) + this.cardLast.nativeElement.scrollIntoView({behavior:"smooth",block:"start"}) + // this.loading.loaderForSendImage() + // console.log("ll",JSON.stringify(this.imageBucket)); + let records:any=[] + records={ + 'pd_id':this.pdDetails.pd_id, + 'formid':this.pdDetails.form_id, + 'images':local_bucket, + 'company_id':this.pdDetails.company_id, + 'rental_count_id':this.pdDetails.rental_count_id, + } + // this.imageBucket=[] + console.log("records",JSON.stringify(records)) + + this.qustCat.savePDImages(records).subscribe(res=>{ + if(res['dataStatus']== true){ + let imageData={imageDisplay:this.imageDisplay,imageBucket:this.imageBucket} + this.imageDatalength_forParent.emit(imageData) + // local_arr.forEach(val=>{ + // if(val.Name == this.) + // }) + console.log("bb",local_bucket); + this.imageBucket.forEach(val=>{ + + if(local_bucket[0].Name == val.Name){ + val.isLoader=false; + val.isSaved=true + return val + } + }) + console.log("response",this.imageBucket) + // let img_name=records.images[0].Name + // this.imageBucket[0].Name + // this.toast.pdTriggerappmessage(img_name+" Saved Successfully") + // this.imageDisplay.push(this.imageBucket) + // console.log("length",this.imageDisplay.length) + + // this.getPDImages(); + // this.cardLast.nativeElement.scrollIntoView({behavior:"smooth",block:"start"}) + } + else{ + this.toast.pdTriggerappmessage('Something went wrong'); + this.imageBucket.forEach(val=>{ + if(local_bucket[0].Name == val.Name){ + val.isLoader=false; + val.isSaved=false; + return val + } + }) + } + // this.loading.dismissLoader(); + },err=>{ + // this.loading.dismissLoader(); + this.toast.pdTriggerappmessage("Network Error") + this.imageBucket.forEach(val=>{ + if(local_bucket[0].Name == val.Name){ + val.isLoader=false; + val.isSaved=false; + return val + } + }) + }) + + } + changeName(value,index,img){ + console.log(value); + this.imageDisplay[index]={'image':img,'Name':value} + + } + changeNameForBucket(value,index,img){ + this.imageBucket[index]={'image':img,'Name':value} + } + removeImg(index){ + this.imageDisplay.splice(index,1); + } + removeImgForBucket(index){ + this.imageBucket.splice(index,1) + } + changeOptions(event: any,index: any){ + + let name = this.imageBucket[index].value + let length = this.imageDisplay.length; + + this.imageDisplay.forEach(result=>{ + if(name == 'Approach to PD Location ' && event == 1){ + result.is_show_report = 0; + } + }) + + this.imageBucket.forEach(result=>{ + if(name == 'Approach to PD Location ' && event == 1){ + // this.AppxPDLocationImgValid = true; + // console.log('name',name); + // console.log('this.imageBucket.length',this.imageBucket.length); + result.is_show_report=0; + } + }) + + this.imageBucket[index].is_show_report=event; + + } + ngCanDestroy() { // or some other name + console.log("canDestroy") + } + @HostListener('window:beforeunload', ['$event']) + ngOnDestroy($event){ + + console.log("Destroy event called") + console.log("leave",this.imageBucket.filter(val=>val.isSaved == false)) + let unSavedImages:any=[] + unSavedImages.img_bucket=this.imageBucket.filter(val=>val.isSaved == false) + if(unSavedImages.img_bucket.length > 0){ + unSavedImages.storage_key="pd_images" + unSavedImages.form_id=this.pdDetails.form_id //Storage Key + this.ionicStorageProvider.insertPDImageLocally(unSavedImages); +} + + // let imageData={imageDisplay:this.imageDisplay,imageBucket:this.imageBucket} + // this.imageDatalength_forParent.emit(imageData) + // if (this.imageBucket.length > 0) { + // return new Promise((resolve, reject) => { + // let alert = this.toast.setAlert("Captured Images are not Saved", "Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?") + // alert.present(); + // alert.onDidDismiss((data) => { + // if (data == false) { + // reject(); + + // } + // else { + // resolve(); + // } + // }) + // }) + // } + + } + + +// ngOnChanges(){ +// console.log("changes") +// } +// ngDoCheck(){ +// console.log("ngDoCheck") +// } +// ngOnInit() { +// console.log('ngOnInit'); +// } +// ionViewWillEnter() { +// console.log('ionViewWillEnter'); +// } +// ionViewDidEnter() { +// console.log('ionViewDidEnter'); +// } +// ionViewWillLeave() { +// console.log('ionViewWillLeave'); +// } +// ionViewDidLeave() { +// console.log('ionViewDidLeave'); +// } +// ionViewWillUnload() { +// console.log('ionViewWillUnload'); +// } +// ionViewCanEnter() { +// console.log('ionViewCanEnter'); +// } + + +} diff --git a/src/app/pages/pd/pd-list/advance-filter/advance-filter.html b/src/app/pages/pd/pd-list/advance-filter/advance-filter.html new file mode 100755 index 0000000..9065c0d --- /dev/null +++ b/src/app/pages/pd/pd-list/advance-filter/advance-filter.html @@ -0,0 +1,82 @@ + + + + +  Advanced Filter + + + + + + + + + + +
+ + + {{status.pd_status_name}} + + + + + + + + + + + + + + + + {{pro.abbr}} + + + + + + {{ent.full_name}} + + + + + + +
+
+ +
+ +
+ +     + + + + +
+
diff --git a/src/app/pages/pd/pd-list/advance-filter/advance-filter.scss b/src/app/pages/pd/pd-list/advance-filter/advance-filter.scss new file mode 100755 index 0000000..70a8dda --- /dev/null +++ b/src/app/pages/pd/pd-list/advance-filter/advance-filter.scss @@ -0,0 +1,8 @@ +page-advance-filter { + .scroll-content { + background-color: #fff; + } + .mat-raised-button{ + background-color: #e2412f; + } +} diff --git a/src/app/pages/pd/pd-list/advance-filter/advance-filter.ts b/src/app/pages/pd/pd-list/advance-filter/advance-filter.ts new file mode 100755 index 0000000..f4cacab --- /dev/null +++ b/src/app/pages/pd/pd-list/advance-filter/advance-filter.ts @@ -0,0 +1,159 @@ +import { Component, Input, EventEmitter, Output } from '@angular/core'; +import {NavController, NavParams, ActionSheetController, ModalController } from '@ionic/angular'; +import { FormGroup, FormBuilder } from '@angular/forms'; +import { DatePipe } from '@angular/common'; +import { ToastProvider } from 'src/app/services/common-provider/toast'; +import { LoadingProvider } from 'src/app/services/common-provider/loading'; +import { PdtriggerProvider } from 'src/app/services/pdtrigger/pdtrigger'; +import { QuestionCategoryProvider } from 'src/app/services/question-category/question-category'; +// import { SalesPdProvider } from '../../providers/sales-pd/sales-pd'; +// import { ToastProvider } from '../../../../services/common-provider/toast +// import { LoadingProvider } from '../../../../providers/common-provider/loading'; + +/** + * Generated class for the AdvanceFilterPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + +// @IonicPage() +@Component({ + selector: 'page-advance-filter', + templateUrl: 'advance-filter.html', + styleUrls:['advance-filter.scss'] +}) +export class AdvanceFilterPage { + searchForm:FormGroup; + todaydate: any; + pdStatus: any=[]; + // pdStatus_all: any=[]; + ENTITY: any =[]; + PRODUCTS: any =[]; + xpandStatus:boolean=false; + pipe=new DatePipe('en-US'); + from_page: any; + constructor(private _fb:FormBuilder,public navCtrl: NavController, public navParams: NavParams,public actionSheetCtrl: ActionSheetController,private pdTriggerProvider:PdtriggerProvider,private toastProvider:ToastProvider,private loaderProvider:LoadingProvider,private modalCtrl:ModalController,private quesCategoryProvider:QuestionCategoryProvider ) { + this.todaydate = new Date(); + this.getDropdown(); + this.from_page=this.navParams.get('FormDet'); + console.log(this.from_page); + if(this.from_page){ + this.from_page =this.from_page.from_page + } + } + + ionViewDidLoad() { + console.log('ionViewDidLoad AdvanceFilterPage'); + } + ngOnInit() { + let userid = localStorage.getItem('pd_user_details') + userid=JSON.parse(userid).userid + this.searchForm=this._fb.group({ + pd_status:[this.from_page == 'complete_list' ? 'COMPLETED' : ''], + pd_from_date:[''], + pd_to_date:[''], + pd_products:[''], + pd_lender:[''], + pd_applicant_name:[''], + pd_officer:[''], + pd_officer_id:[userid] + }) + + } + getDropdown(){ + // this.salesPDService.getAllMasterDatas('PDSTATUS').subscribe(res=> + // { + // if(res.dataStatus==true) + // { + // this.pdStatus_all = res.records.filter(status=>status.isactive==1); + // } + // }); + this.quesCategoryProvider.getcommondrop('ENTITY').subscribe(res=> + { + if(res.dataStatus==true) + { + this.ENTITY = res.records.filter(ent=>ent.isactive==1); + } + }); + this.quesCategoryProvider.getcommondrop('PRODUCTS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PRODUCTS = res.records.filter(pro=>pro.isactive==1); + } + }); + this.quesCategoryProvider.getcommondrop("PDSTATUS").subscribe(res=> + { + if(res.dataStatus==true) + { + this.pdStatus = res.records.filter(pro=>(pro.isactive==1) && (pro.pd_status_name =="ACCEPTED" || pro.pd_status_name =="SCHEDULED" || pro.pd_status_name =="INITIATED" || pro.pd_status_name =="STARTED" || pro.pd_status_name =="INPROGRESS" || pro.pd_status_name == "ADD_ON_PENDING" || pro.pd_status_name == "ALLOCATED")); + } + }); + + } + // setDropDownDatas(){ + // console.log(this.drop_down_datas) + // if(this.drop_down_datas != undefined){ + // this.pdStatus=this.drop_down_datas.pd_status + // if(this.ENTITY.length != 0) { + // this.entityCheck() + // } + // else{ + // setTimeout(()=>{this.entityCheck()},500) + // } + // if(this.PRODUCTS.length != 0) { + // this.productCheck() + // } + // else{ + // setTimeout(()=>{this.productCheck()},500) + // } + // } + // } + // productCheck(){ + // this.PRODUCTS=this.PRODUCTS.filter(val=>{ + // if(this.drop_down_datas.product_ids.filter(dp=>dp == val.product_id).length > 0){ + // return val + // } + // }) + // } + // entityCheck(){ + // this.ENTITY=this.ENTITY.filter(val=>{ + // if(this.drop_down_datas.lender_ids.filter(dp=>dp == val.entity_id).length > 0){ + // return val + // } + // }) + // } + searchItem(){ + this.loaderProvider.dataLoader().then(res=>{}) + this.searchForm.value.pd_from_date = this.pipe.transform(this.searchForm.value.pd_from_date,'yyyy-MM-dd'); + this.searchForm.value.pd_to_date = this.pipe.transform(this.searchForm.value.pd_to_date,'yyyy-MM-dd'); + // console.log(JSON.stringifythis.searchForm.value); + this.xpandStatus=true; + this.pdTriggerProvider.advancedFilter(this.searchForm.value).subscribe(res=>{ + if(res.dataStatus){ + console.log(res); + // this.filteredlistData.emit(res); + // this.xpandStatus=false + this.modalCtrl.dismiss(res['records']) + } + else{ + let msg = res.hasOwnProperty('msg') ? res.msg : "No Records Found" + this.toastProvider.pdTriggerappmessage(msg,'danger') + } + this.loaderProvider.dismissLoader() + }) + } + onReset(){ + this.searchForm.reset(); + if(this.from_page == 'complete_list'){ + this.searchForm.controls['pd_status'].setValue('COMPLETED'); + } + let userid = localStorage.getItem('pd_user_details') + userid=JSON.parse(userid).userid + this.searchForm.controls['pd_officer_id'].setValue(userid); + } + closeModal(){ + this.modalCtrl.dismiss(); + } +} diff --git a/src/app/pages/pd/pd-list/pd-list.html b/src/app/pages/pd/pd-list/pd-list.html new file mode 100755 index 0000000..51b3b34 --- /dev/null +++ b/src/app/pages/pd/pd-list/pd-list.html @@ -0,0 +1,362 @@ + + + + + + PD Cases + + + + + + +    + + + + + + + + + + + + Allocated + + + Scheduled + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
+ + + + + + + + + + +

{{progess.pd_sno_split.lender_name}}
+ {{progess.pd_sno_split.serial_no}}

+ + + +

{{progess.applicant_name | titlecase}}

+ +
+ + +
+ {{progess.pd_date_of_initiation}} +
+
+ {{progess.city_name}} +
+
+
+
+ + + + {{progess.fin_institute_name}} + + + + + + +

{{progess.lender_short_name}}, {{progess.lender_applicant_id}}

+
+
+ + + {{progess.vendor_status}} + + +
+
+
+ + + + + +

{{progess.pd_sno_split.lender_name}}
+ {{progess.pd_sno_split.serial_no}}

+ + + + +

Add On

+ +
+ + +
+ {{progess.pd_date_of_initiation}} +
+
+ {{progess.city_name}} +
+
+
+
+ + + +

{{progess.lender_short_name}}, {{progess.lender_applicant_id}}

+
+
+ + + {{progess.vendor_status}} + + +
+
+
+ +
+
+
No Allocated Cases Found
+

Showing data for last {{filtered_days}}. To see older records, please use advanced filter

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

{{progess.pd_sno_split.lender_name}}
+ {{progess.pd_sno_split.serial_no}}

+ + + + +

{{progess.applicant_name | titlecase}}

+ +
+
+ + + + {{progess.fin_institute_name}} + + + + + + + +

{{progess.lender_short_name}}, {{progess.lender_applicant_id}}

+
+
+ + + {{progess.city_name}} + + +
+ + + + {{progess.vendor_status}} + + + + +
+ {{progess.pd_date_of_initiation}} +
+
+ {{progess.scheduled_on}} +
+
+
+
+
+
+ + + +

{{progess.pd_sno_split.lender_name}}
+ {{progess.pd_sno_split.serial_no}}

+ + + + + + +

Add On for

+
+
+ + + + +

{{progess.lender_short_name}}, {{progess.lender_applicant_id}}

+
+
+ + + {{progess.city_name}} + + +
+ + + + {{progess.vendor_status}} + + + + +
+ {{progess.pd_date_of_initiation}} +
+
+ {{progess.scheduled_on}} +
+
+
+
+
+
+ +
+ + +
+ +
No Scheduled Cases Found
+

Showing data for last {{filtered_days}}. To see older records, please use advanced filter

+
+
+ +
+ +
+ + +
+ + + +
+ + +
\ No newline at end of file diff --git a/src/app/pages/pd/pd-list/pd-list.scss b/src/app/pages/pd/pd-list/pd-list.scss new file mode 100755 index 0000000..ff3967a --- /dev/null +++ b/src/app/pages/pd/pd-list/pd-list.scss @@ -0,0 +1,202 @@ +// page-pd-list{ + + mat-grid-tile { + background: white!important; + } + grid{ + padding:0px; + } + .inner-scroll{ + padding: 0px !important; + // margin-top: 45px !important; + } + .ion-grid{ + padding: 0px !important; + width: 100%; + } + ion-row{ + width: 100%; + padding: 0px !important; + margin: 0px; + } + .fadeIn { + animation-name: fadeIn; + animation-duration: 15s; + transition: all 0.5s cubic-bezier(.36,-0.64,.34,1.76); + width: 100%; + padding: 0px; + } + @font-face{ + font-family: Roboto; + src: url('../../../../assets/fonts/Roboto-Bold.ttf')!important; + } + h1,h2{ + margin: 2px 0; + font-size: 21px; + // font-size: 2.1rem !important; + // overflow: hidden; + // text-overflow:ellipsis; + // font-weight: bold!important; + } + // .box{ + // box-shadow: 0 5px 20px 0 rgba(0,0,0,.2),0 13px 24px -11px rgba(50, 114, 178, 0.59) !important; + // } + .inner-scroll{ + background-color: #eee !important; + + } + .mat-card{ + // border-top: 3px solid rgba(50, 114, 178, 0.78); + padding: 0px !important; + box-shadow: none !important; + width: 100%; + padding:0px !important; + margin:0px !important; + // height: 100%; + } + // ion-content{ + // font-size: 10px; + // } + .mat-card-title{ + margin-bottom: 0px; + } + .list-md{ + margin: 0px; + padding: 0px; + } + // .lettericon{ + // background-color: cadetblue; + // padding: 10px 15px 10px 15px; + // border-radius: 50%; + // color: #fff; + // } + .lettericon{ + background-color: cadetblue; + padding: 6px 7px 6px 7px; + border-radius: 10px; + color: #fff; + font-size: 90%; + font-weight: bold; + min-width: 4.4em; + text-align: center; + } + .no_applicant_pd{ + background-color: cadetblue; + padding: 10px 15px 10px 15px; + border-radius: 50%; + color: #fff; + + } + .label-md{ + margin: 0px; + } + // .item-md h4 { + // font-size: 1.7rem; + // } + .item-md ion-icon[item-start] + .item-inner{ + margin-left: 0px; + } + .mat-raised-button{ + border-radius: 30px; + padding: 19px 45px; + line-height: 0px; + box-shadow: 0 16px 38px -12px rgba(0,0,0,.56), 0 4px 25px 0 rgba(0,0,0,.12), 0 8px 10px -5px rgba(0,0,0,.2) !important; + } + + .button-md-primary { + margin-bottom: 0px !important; + height: 50px; + } + ion-fab[middle]{ + top:17% !important; + } + .fab-md-optblue{ + box-shadow: 0 16px 38px -12px rgba(0, 0, 0, 0.56), 0 4px 25px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2) !important; + } + ion-footer{ + position: absolute; + } + ion-slide.swiper-slide { + align-items: flex-start; + // height: auto; + + // overflow-x:scroll; + // overflow-y:scroll; + // display: block; +} +// .slide-zoom{ +// height:auto; +// //overflow-y:scroll; +// } +// ion-slide{ +// //overflow: auto; +// } +// .swiper-slide{ +// display:block; +// } +// ion-slide{ +// ion-grid{ +// height: 90vh; // padding for footer +// overflow-y: scroll; +// overflow-x:scroll; +// } +// } +ion-slides{ + height: auto; +} + +// .slide-zoom { +// text-align: center; +// position: absolute; +// top: 0; +// display: block; +// width: 100%; +// height: auto; +// //padding: 50px 10px; +// } +// .slide-zoom{ +// height: auto; +// } +// ion-slide{ +// height: auto; +// } +// ion-slides{ +// overflow: auto; +// } + +// ion-slide{ +// overflow: auto; +// } +// .slide-zoom{ +// height: auto; +// } + +.app_id{ + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0px; +} +// ion-content,ion-refresher{ +// --background:#eeeeeecf; +// } +p.note{ + color: gray; + font-size: 13px; + font-weight: bold; + text-align: center; + /* margin-top: 26%; */ + /* border: 1px solid lightblue; */ + border-radius: 10px; + /* width: 90%; */ + /* margin-left: 5%; */ + /* justify-content: center; */ + padding: 10px; + float: center; + /* align-items: center; */ + /* align-content: center; */ + +} + + // } \ No newline at end of file diff --git a/src/app/pages/pd/pd-list/pd-list.ts b/src/app/pages/pd/pd-list/pd-list.ts new file mode 100755 index 0000000..2be098f --- /dev/null +++ b/src/app/pages/pd/pd-list/pd-list.ts @@ -0,0 +1,339 @@ +import { Component,ViewChild } from '@angular/core'; +import { NavController, NavParams, IonSlides,IonContent, ModalController} from '@ionic/angular'; +// import { InputPage } from '../input/input'; +import { AwsServiceProvider } from '../../../services/aws-service/aws-service'; +import { PdtriggerProvider } from '../../../services/pdtrigger/pdtrigger'; +import { CognitoServiceProvider } from '../../../services/aws-service/cognito.service'; +// import { parseDate } from '@ionic/angular/util/datetime-util'; +// import { PdAllocationPage } from '../pd-allocation/pd-allocation'; +// import { OtpPage } from '../otp/otp'; +// import { PdQuestionCategoryPage } from '../pd-question-category/pd-question-category'; +import { DatabaseProvider } from '../../../services/database/database'; +import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; + + +import { StorageProvider } from '../../../services/storage/storage'; +import { NavigationExtras } from '@angular/router'; +import { AdvanceFilterPage } from './advance-filter/advance-filter'; +import { EventsService } from 'src/app/services/common-provider/events/events.service'; +/** + * Generated class for the PdListPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ + + +@Component({ + selector: 'page-pd-list', + templateUrl: './pd-list.html', + styleUrls: ['pd-list.scss'], +}) +export class PdListPage { + + @ViewChild(IonContent,{static:false}) content: IonContent + @ViewChild('slider',{static:true}) slider:IonSlides; + searchinprogress: any; + searchpast: any; + pdschduleDetails: any=[]; + bgColorPast: any = []; + bgColor: any = []; + pdinprogress: any=[]; + pdlistdetails: any=[]; + viewchange: boolean; + pdlist:any = "0"; + pdlistaccess:boolean = null; + + notification:any=[] + from:any; + searchitem:any; + showButton; + filteredData: boolean = false; + filtered_days: any; + constructor(public navCtrl: NavController,public aws:AwsServiceProvider,public pdofficer:PdtriggerProvider,public shared:CognitoServiceProvider,public db:DatabaseProvider,public androidPermissions:AndroidPermissions,private eventsService:EventsService,private ionicStrorage:StorageProvider,private modalCtrl:ModalController) { + //this.getlenderpddetails(); + // this.getpdTriggerdetails(); + setTimeout(()=>{ + this.eventsService.publishNotifyEvent('my Message'); + },5000) + this.eventsService.getAlertEvent().subscribe((res)=>{ + this.notification.push(res); + console.log("notification via event",this.notification); + }) + + // this.from=this.navParams.get('notify') + // console.log("from",this.from); + + + } + async selectedTab(ind) + { + await this.slider.slideTo(ind) + this.content.scrollToTop(); + } + async moveButton(event){ + console.log(event,await this.slider.getActiveIndex()); + this.pdlist=await this.slider.getActiveIndex(); + this.content.scrollToTop(); + // this.pdlist.scro + // this.slid + } + + + ngOnInit() { + setTimeout(()=>{ + this.filtered_days=JSON.parse(localStorage.getItem('commonConfig')) + if(this.filtered_days) { + this.filtered_days = this.filtered_days.default_pd_list_count + this.filtered_days=this.filtered_days.count+' '+this.filtered_days.factor + } + },300) + console.log('ngOnInit PdListPage'); + // this.db.getuserDetails(); + this.setpermission(); + + } + ionViewWillEnter() + { + console.log("Pd list ionViewCanEnter") + this.getpdTriggerdetails(); + } + filter(view){ + console.log(view) + if(!view){ + this.viewchange = true; + }else{ + this.viewchange = false; + this.searchitem='' + this.pdinprogress = this.searchinprogress; + this.pdschduleDetails = this.searchpast; + } + + //alert(this.viewchange); + } + pdlistsearch(searchbar) { + + this.pdinprogress = this.searchinprogress; + this.pdschduleDetails = this.searchpast; + // reset countries list with initial call + //this.pdinprogress = this.countriesInitial; + // set q to the value of the searchbar + var q = searchbar.target.value; + + // if the value is an empty string don't filter the items + + if(this.pdlist == "0"){ + if (q.trim() == '') { + return ; + }else{ + this.pdinprogress = this.searchinprogress.filter((v) => { + if (v.applicat_details !== undefined && v.applicat_details[0].applicant_name.toLowerCase().indexOf(q.toLowerCase()) > -1 || v.vendor_status.toLowerCase().indexOf(q.toLowerCase())>-1 || v.city_name != null && v.city_name.toLowerCase().indexOf(q.toLowerCase())>-1 || v.lender_applicant_id.toLowerCase().indexOf(q.toLowerCase())>-1) { + return true; + } + return false; + }) + } + }else + { + if (q.trim() == '') { + + return ; + }else{ + this.pdschduleDetails = this.searchpast.filter((v) => { + console.log(v) + if(v.hasOwnProperty('applicat_details') && v.applicat_details.length > 0 && v.applicat_details[0].applicant_name != null){ + if (v.applicat_details[0].applicant_name.toLowerCase().indexOf(q.toLowerCase()) > -1 + || v.vendor_status.toLowerCase().indexOf(q.toLowerCase())>-1|| v.city_name.toLowerCase().indexOf(q.toLowerCase())>-1 || v.lender_applicant_id.toLowerCase().indexOf(q.toLowerCase())>-1) { + + return true; + } + } + return false; + }) + } + +} +} + newpage(){ + this.navCtrl.navigateForward(['/pd/InputPage']); + } + getpdTriggerdetails() + { + + let userid = localStorage.getItem('pd_user_details') + userid=JSON.parse(userid).userid + //.log("User",userid) + this.pdlistaccess = true; + + this.pdofficer.getpddetails(userid).subscribe(res=> + { + this.pdlistdetails = res; + if(this.pdlistdetails.dataStatus == true) + { + this.pdlistaccess = false; + this.filteredData = false; + this.pdschduleDetails = this.pdlistdetails.records.filter(sch=>sch.vendor_status =="ACCEPTED" || sch.vendor_status =="SCHEDULED" || sch.vendor_status =="INITIATED" || sch.vendor_status =="STARTED" || sch.vendor_status =="INPROGRESS" || sch.vendor_status == "ADD_ON_PENDING" ); + this.searchpast = this.pdschduleDetails; + + this.pdinprogress = this.pdlistdetails.records.filter(allocate=>allocate.vendor_status == "ALLOCATED"); + this.searchinprogress = this.pdinprogress; + + // let array=this.pdschduleDetails[0].pd_sno.split("") + // console.log("array",array) + // let ar2=this.pdschduleDetails[0].pd_sno.split('0') + // console.log("array",ar2) + // let ar1=this.pdschduleDetails[0].pd_sno.split() + // console.log("array",ar1) + // let split=this.pdschduleDetails[0].pd_sno.match(/(\d+)/) + // console.log("sp",split); + // let answer = this.pdschduleDetails[0].pd_sno.replace(/[^a-z]/gi, ''); + // console.log("answer",answer); + + //FOR SPLITTING THE VALUE OF pd_sno + this.pdschduleDetails.length >0 ? + this.pdschduleDetails.forEach(value=>{ + let original=value.pd_sno + value.pd_sno_split={lender_name:original.replace(/[^a-z]/gi, ''),serial_no:original.match(/(\d+)/)[0]} + }) : this.pdschduleDetails + + this.pdinprogress.length >0 ? + this.pdinprogress.forEach(value=>{ + let original=value.pd_sno + value.pd_sno_split={lender_name:original.replace(/[^a-z]/gi, ''),serial_no:original.match(/(\d+)/)[0]} + }) : this.pdinprogress + + + // console.log("allocated",this.pdinprogress); + // console.log("inpr",this.pdschduleDetails); + this.random_bg_color(); + this.random_ng_past(); + }else + { + this.pdlistaccess = false; + this.pdlistdetails = "No Records Found"; + } + }) + } + + random_bg_color() { + for(let id of this.pdinprogress){ + var x = Math.floor(Math.random() * 256); + var y = Math.floor(Math.random() * 256); + var z = Math.floor(Math.random() * 256); + this.bgColor.push("rgb(" + x + "," + y + "," + z + ")"); + + } + + return this.bgColor; + } + random_ng_past() + { + for(let id of this.pdschduleDetails){ + var x = Math.floor(Math.random() * 256); + var y = Math.floor(Math.random() * 256); + var z = Math.floor(Math.random() * 256); + this.bgColorPast.push("rgb(" + x + "," + y + "," + z + ")"); + + } + } + doRefresh(refresher) { + this.bgColor = []; + this.pdschduleDetails = []; + this.pdinprogress = []; + // this.pdlistaccess = true; + this.shared.refresh(); + this.getpdTriggerdetails(); + setTimeout(() => { + + refresher.target.complete(); + }, 2000); + } + + PdAllocation(pddetails) + { + + this.ionicStrorage.clearItem('pd_images'); + if(pddetails.vendor_status == '')//for STARTED + { + // this.navCtrl.navigateForward('OtpPage',{'pdDetails':pddetails}); + this.navCtrl.navigateForward('OtpPage'); + + // }else if(pddetails.vendor_status == 'INPROGRESS'){ + // this.navCtrl.push(PdQuestionCategoryPage,{'pdDetails':pddetails}); + }else //if(pddetails.vendor_status == 'ADD_ON_PENDING' || pddetails.vendor_status == 'ALLOCATED') + { + //FOR ASSIGNING THE PARENT PD ID + //pddetails.pd_id=pddetails.parent_pd_id + // pddetails.pd_id=pddetails.parent_pd_id + // this.navCtrl.push(InputPage,{'pdDetails':pddetails}); + let navigationExtras: NavigationExtras = { + state: { + pdDetails: pddetails + } + }; + this.navCtrl.navigateForward('/pd/InputPage',navigationExtras); + } + } + + setpermission() + { + // let permission = this.androidPermissions.PERMISSION; + // let premission_list = [ + // permission.ACCESS_LOCATION_EXTRA_COMMANDS, + // permission.CAMERA, + + + // ]; + this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS).then( + result => console.log('Has permission?',result.hasPermission), + err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS) + ); + + this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_LOCATION_EXTRA_COMMANDS, this.androidPermissions.PERMISSION.GET_ACCOUNTS]); + } + async openFilterModal(){ + const modalCtrl=await this.modalCtrl.create({ + component:AdvanceFilterPage, + componentProps:{'FormDet':{from_page:'pd_list'}}, + cssClass:'filterModal', + backdropDismiss:false + }) + await modalCtrl.present() + modalCtrl.onDidDismiss().then((modalData:any)=>{ + console.log("Image Data",modalData); + if(modalData && modalData.data != undefined && modalData.data.length > 0){ + this.setFilteredData(modalData.data) + } + }) + } + setFilteredData(filteredData){ + this.pdlistaccess = false; + this.filteredData = true + + this.pdschduleDetails = filteredData.filter(sch=>sch.vendor_status =="ACCEPTED" || sch.vendor_status =="SCHEDULED" || sch.vendor_status =="INITIATED" || sch.vendor_status =="STARTED" || sch.vendor_status =="INPROGRESS" || sch.vendor_status == "ADD_ON_PENDING" ); + + this.searchpast = this.pdschduleDetails; + + this.pdinprogress = filteredData.filter(allocate=>allocate.vendor_status == "ALLOCATED"); + this.searchinprogress = this.pdinprogress; + + //FOR SPLITTING THE VALUE OF pd_sno + this.pdschduleDetails.length >0 ? + this.pdschduleDetails.forEach(value=>{ + let original=value.pd_sno + value.pd_sno_split={lender_name:original.replace(/[^a-z]/gi, ''),serial_no:original.match(/(\d+)/)[0]} + }) : this.pdschduleDetails + + this.pdinprogress.length >0 ? + this.pdinprogress.forEach(value=>{ + let original=value.pd_sno + value.pd_sno_split={lender_name:original.replace(/[^a-z]/gi, ''),serial_no:original.match(/(\d+)/)[0]} + }) : this.pdinprogress + + + console.log("allocated",this.pdinprogress); + console.log("inpr",this.pdschduleDetails); + this.random_bg_color(); + this.random_ng_past(); + } +} diff --git a/src/app/pages/pd/pd-questions/all-ques/all-ques-routing.module.ts b/src/app/pages/pd/pd-questions/all-ques/all-ques-routing.module.ts new file mode 100755 index 0000000..999fc45 --- /dev/null +++ b/src/app/pages/pd/pd-questions/all-ques/all-ques-routing.module.ts @@ -0,0 +1,25 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { AllQuesPage } from './all-ques.page'; +import { UnsavedChangesGuard } from 'src/app/services/_guard/unsaved-changes.guard'; +import { EmployerInfoComponent } from '../employer-info/employer-info.component'; + +const routes: Routes = [ + { + path: '', + component: AllQuesPage, + canDeactivate:[UnsavedChangesGuard] + }, + { + path: 'sal-ques', + component: EmployerInfoComponent, + canDeactivate:[UnsavedChangesGuard] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class AllQuesPageRoutingModule {} diff --git a/src/app/pages/pd/pd-questions/all-ques/all-ques.module.ts b/src/app/pages/pd/pd-questions/all-ques/all-ques.module.ts new file mode 100755 index 0000000..2bdcd7a --- /dev/null +++ b/src/app/pages/pd/pd-questions/all-ques/all-ques.module.ts @@ -0,0 +1,33 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { AllQuesPageRoutingModule } from './all-ques-routing.module'; + +import { AllQuesPage } from './all-ques.page'; +import { MatStepperModule,MatIconModule } from '@angular/material'; +import { MaterialModuleModule } from 'src/app/shared/material-module/material-module.module'; +import { NgxIonicImageViewerModule } from 'ngx-ionic-image-viewer'; +import { DynamicDocsFormComponent } from '../dynamic-docs-form/dynamic-docs-form.component'; +import { NgxMatSelectSearchModule } from 'ngx-mat-select-search'; +import { EmployerInfoComponent } from '../employer-info/employer-info.component'; +import { PipesModule } from 'src/app/pipes/pipes.module'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + AllQuesPageRoutingModule, + MatStepperModule, + MaterialModuleModule, + MatIconModule, + NgxIonicImageViewerModule, + NgxMatSelectSearchModule, + PipesModule + ], + declarations: [AllQuesPage,DynamicDocsFormComponent,EmployerInfoComponent] +}) +export class AllQuesPageModule {} diff --git a/src/app/pages/pd/pd-questions/all-ques/all-ques.page.html b/src/app/pages/pd/pd-questions/all-ques/all-ques.page.html new file mode 100755 index 0000000..92df620 --- /dev/null +++ b/src/app/pages/pd/pd-questions/all-ques/all-ques.page.html @@ -0,0 +1,967 @@ + + + + + + + + FI Questions + + + + + + +
+ + + + + General Section +
+ + + Applicants + + + Applicant Met + + + + + + {{applicant.value.applicant_name}} + + + + + +
+ +        Met + Not Met + + Required +
+ +

+
+ + + + + + + + + *
+ Selfie of the Person Met + Required +
+ + + + + *
+ ID Proof of the person + Required +
+
+
+
+
+ +
+
+ + + + Name of Person Met + + Person Name required + + + + +
+ + + + + + + + + *
+ Selfie of the Person Met + Required +
+ + + + +
+ ID Proof of the person +
+
+
+ + Designation in company + + + Select + {{item.name.split('of')[0]}} + + Designation required + + + Relation with applicant + + + Select + {{item.name}} + + Relation required + + + Relation to + + Select + {{applicant.value.applicant_name}} + + Relation to required + +
+ + +
+ + +
+ +
+ + + + + Address Information + + + + + + + Address is Required + + + + + + + + + + + Select + {{SL.name}} + + State is Required + + + + + + + + + Select + {{CL.city_name}} + + City is Required + + + + + + + + + + Select + {{PL.pincode}} + + Pincode is Required + +
+ + + + + + + + + +
+
+

+
+
+ + + Alternative Address Required + + + + + + + + + + Select + {{SL.name}} + + + + + + + + + + Select + {{CL.city_name}} + + + + + + + + + + + Select + {{PL.pincode}} + + + + + + Pincode Required + + + + + + + Reason Required + + + +
+
+
+
+ + + + Select + {{m_addressType.address_type}} + + Address Type is Required + +
+ + + +
+ + + Select + {{m_locality.locality_name}} + + + + Locality is Required + + + + + + + + + Estimated area is Required + +
+ + + Select + {{uom.name}} + + UOM is Required + + + + + +
+ + + + + + Approach to FI location + + Select + {{data.description}} + + Approach to pd location is Required + + + + + + + + * + Capture the Image + Approach to pd location pic is Required + + + + + + Comment on locality + + Select + {{data.rating | titlecase}} + + + Comment on locality is Required + + + +
+ + +
+ +
+ + + + + Business Information + +
+ +
+ + No. of employees sighted by FI officer during visit + + Required + + + + + + Was the company name board sighted? + + Select + Yes + No + + Required + + + + + + + *
+ Capture the Image + Required +
+
+ + + + Business Documents sighted + + Select + Yes + No + + Required + + + + + +
+ + + + Choose the Documents + + Select + {{_doc.dis_name}} + + Required + + + + + + + *
+ Capture the Image + Required +
+
+ + + + + + + + + + + + + + +
+

+ + Do You Want to Add Other Documents? + + Select + Yes + No + + + + Required + + + +
+ + + + + Required + + + + + + + *
+ Capture the Image + Required +
+
+ + + + + + + + + + + + + + +
+
+
+ {{getQuestionControl().at(1).value.address_type ? getAddressTypeNameById(getQuestionControl().at(1).value.address_type) :'Workplace'}} Photographs + + + + +
+
+ + + Workplace Photograph {{i+1}} + +
+ + +
+ Add More +
+


+
+ + + + +
+ + + Was any business activities seen during visit? + + Select + Yes + No + + Required + +
+ + Choose + + {{item}} + + Please choose the value + + + + Please Specify + + +
+ + Is Business Asset Sighted
+ + Select + Yes + No + + Required +
+
+ + Business Asset Sighted Photographs + + + +
+
+ + + Business Sight {{i+1}} + +
+ + +
+ Add More +
+
+ + + + +
+ + +
+ Stock Photograph

+ + Stock Photograph + + Select + Yes + No + + Please choose the value + + + + + +
+
+ + + Stock Photograph {{i+1}} + +
+ + +
+ Add More +
+
+
+ + + + +
+ + + + +
+ + +
+ +
+ +
+ + Credit Manager Special Requests + + +
+ + + +
+
+ + +
+ + +
+
+ + + Neighbourhood Check Details (2 checks to be done) + + + + + Neighbour details {{n+1}} + + + +
+
+ + + + + + Neighbourhood Name is Required + + + + Select + Yes + No + + Please Choose + +
+
+
+ +
+ + + + Year is Required + + + + Month is Required + + +
+
+
+ + + + + {{app.name}} + + + pick atleast one organisation owner + + + + organisation owner is required + +
+ +


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

+ + Status of the check as per PD officer? + + {{item.name}} + + Required + + + Remarks + + Required + +
+ + +
+
+
+ + + Final Remarks + +
+

Comment on Footfall in the market where the B2C outlet is located…

+ + + Heavy Footfall ( lots of customers in the locality / marketplace ).
+ Medium Footfall ( Medium no of customers in the locality / marketplace ).
+ Low Footfall ( Few customers seen in the locality / marketplace ).
+ +

+
Required
+
+ + + Is there a competetion to the applicant's business in the location + + Select + Yes + No + + Required + + + + + + Required + + + + Any demolition activity seen in the locality by PD officer + + Select + Yes + No + + Required + + + + + + Required + + + Any sealing activity observed in the locality by PD officer + + Select + Yes + No + + Required + + + + + + Required + +
+ + +
+ +
+
+ + + Submit + + Final Status of visit + + + Select + Positive + Negative + Could not verify + + Required + + + Comments + + Required + +
+ + + + +
+
+
+
+  Complete +
+
diff --git a/src/app/pages/pd/pd-questions/all-ques/all-ques.page.scss b/src/app/pages/pd/pd-questions/all-ques/all-ques.page.scss new file mode 100755 index 0000000..45ba755 --- /dev/null +++ b/src/app/pages/pd/pd-questions/all-ques/all-ques.page.scss @@ -0,0 +1,189 @@ +.mat-stepper-vertical { + // margin-top: 8px; + margin-left:-13px; + // color:green; + background:#ffffffc9; + } + ion-content, .mat-stepper-vertical{ + --background: #ffffffc9; + } + .mat-form-field { + // margin-top: 16px; + width: 100%; + } + .mat-button, .mat-raised-button{ + background-color: #e24533; + color: white; + +} +.mat-stroked-button { + color: #e24533; + margin-right: 10px +} +.mat-button-div{ + float: right; + margin-top: 5%; + margin-bottom: 2%; +} +.mat-radio-group > .mat-radio-button,span { + margin: 10px; +} + + +::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb { + background-color: blue; /*replace with your color*/ +} + +::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar { + background-color: skyblue; /*replace with your color*/ +} + +::ng-deep .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{ + border-color:rgb(66, 134, 244); +} + +::ng-deep .mat-radio-button.mat-accent .mat-radio-inner-circle{ + color:rgb(66, 134, 244); + background-color:rgb(66, 134, 244) ; +} + +.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element { + background-color:rgb(255, 37, 37,.26); +} + +// .largeMatOption { + +// ::ng-deep .mat-option-text.mat-option-text { +// white-space: normal; +// } +// ::ng-deep .mat-select-panel mat-option.mat-option { +// height: unset; +// line-height: 1.8em +// } +// } + +// input-placeholder{ +// margin:10px; +// } +// mat-select{ + +// margin : 5px 0; +// } + +// .mat-select-panel mat-option.mat-option { +// margin: 1rem 0; +// overflow: visible; +// line-height: initial; +// word-wrap: break-word; +// white-space: pre-wrap; +// } +input{ + // width: 100px; + // border-radius: 4px; + // border-color: gray; + // font-size: 12px; + height: 28px; + +} +// .mat-select-panel mat-option.mat-option { +// margin: 1rem 0; +// overflow: visible; +// line-height: initial; +// word-wrap: break-word; +// white-space: pre-wrap; +// } + +// .mat-option, +.largeMatOption{ + margin: 1rem 0; + overflow: visible; + line-height: initial !important; + word-wrap: break-word; + white-space: pre-wrap; +} +// .mat-option i, + .largeMatOption i{ + display: block; + font-size: 1.5rem; + opacity: 0.6; + margin-left: 0.5rem; + +} +// } + input-placeholder{ + margin:10px; + } + mat-select{ + + margin : 5px 0; +} +::ng-deep .mat-form-field-appearance-fill +{ + .mat-form-field-label { + white-space: pre-wrap; +} +.mat-form-field-label-wrapper { + top:-1.5em; +} +} +// ::ng-deep +ion-spinner { + top:10px; +} +::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline { + .mat-form-field-outline-gap { + width: 100% !important; + } + color: green; +} +::ng-deep .mat-step-header .mat-step-label.mat-step-label-active { + color: rgba(0,0,0,.87); + white-space: pre-wrap; + font-weight: bold; + font-size: 16px; +} +@-webkit-keyframes highlight-fade { + 0% { + background: orange; + } + 100% { + background: white; + } +} +@-moz-keyframes highlight-fade { + 0% { + background: orange; + } + 100% { + background: white; + } +} +@-ms-keyframes highlight-fade { + 0% { + background: orange; + } + 100% { + background: white; + } +} +@keyframes highlight-fade { + 0% { + background: orange; + } + 100% { + background: white; + } +} +.field_highlight { + -webkit-animation: highlight-fade 4s ease-out; + -moz-animation: highlight-fade 4s ease-out; + -o-animation: highlight-fade 4s ease-out; + animation: highlight-fade 4s ease-out; + // background: blue; +} +.mat-error { + font-size: 13px; +} +// .file-hide { +// visibility: hidden +// } \ No newline at end of file diff --git a/src/app/pages/pd/pd-questions/all-ques/all-ques.page.spec.ts b/src/app/pages/pd/pd-questions/all-ques/all-ques.page.spec.ts new file mode 100755 index 0000000..4322141 --- /dev/null +++ b/src/app/pages/pd/pd-questions/all-ques/all-ques.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { AllQuesPage } from './all-ques.page'; + +describe('AllQuesPage', () => { + let component: AllQuesPage; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ AllQuesPage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(AllQuesPage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/pd/pd-questions/all-ques/all-ques.page.ts b/src/app/pages/pd/pd-questions/all-ques/all-ques.page.ts new file mode 100755 index 0000000..84ec6f3 --- /dev/null +++ b/src/app/pages/pd/pd-questions/all-ques/all-ques.page.ts @@ -0,0 +1,1691 @@ +import { Component, OnInit, ViewChild, ElementRef } from '@angular/core'; +import { Validators, FormBuilder, FormArray, FormControl } from '@angular/forms'; +import { QuestionCategoryProvider } from 'src/app/services/question-category/question-category'; +import { CameraProvider } from 'src/app/services/common-provider/camera'; +import { DatePipe } from '@angular/common'; +import { ActivatedRoute, Router } from '@angular/router'; +import { ToastProvider } from 'src/app/services/common-provider/toast'; +import { AwsServiceProvider } from 'src/app/services/aws-service/aws-service'; +import { NavController } from '@ionic/angular'; +import { LoadingProvider } from 'src/app/services/common-provider/loading'; +import { ConstantsProvider } from 'src/app/services/constants/constants'; +import { ReplaySubject, Subject } from 'rxjs'; +import { searchValue } from '../search'; +import { takeUntil } from 'rxjs/operators'; +import { MatStepper } from '@angular/material'; +import { invalid } from '@angular/compiler/src/render3/view/util'; +import { PdtriggerProvider } from 'src/app/services/pdtrigger/pdtrigger'; +import { GpsService } from 'src/app/services/common-provider/gps.service'; + + +const currentdate = new Date().toJSON().slice(0,19); +@Component({ + selector: 'app-all-ques', + templateUrl: './all-ques.page.html', + styleUrls: ['./all-ques.page.scss'], +}) +export class AllQuesPage implements OnInit { + stepperInfo= [{ + form_name:'General Section', + form_id:18, + stepper_index:0, + },{ + form_name:'Address Information', + form_id:5, + stepper_index:1 + },{ + form_name:'Business Information', + form_id:"BUSINESS_GROUP", + stepper_index:2 + }, + // { + // form_name:'Employer information', + // form_id:"BUSINESS_GROUP", + // stepper_index:2 + // }, + { + form_name:'Credit Manager Queries', + form_id:24, + stepper_index:3, + is_dynamic:true + },{ + form_name:'Neighbourhood Details', + form_id:19, + stepper_index:4, + is_dynamic:true + },{ + form_name:'Final Remarks', + form_id:20, + stepper_index:5, + is_dynamic:true + },{ + form_name:'Submit', + form_id:'COMMENTS', + stepper_index:5, + is_dynamic:true + },] + // public person_met_entered:FormControl= new FormControl('') + // public designation_entered:FormControl= new FormControl('') + // public relation_entered:FormControl= new FormControl('') + // public relation_to:FormControl= new FormControl('') + businessAssetLisany=[ + "Employees were seen at the visited premises", + "Customers/Clients were seen at the visited premises", + "Manufacturing activities were seen at the visited premises", + "Others (Please specify)" + ] + + + firstFormGroup: any; + secondFormGroup: any; + matExpanded:number = 0; + isDisplay:any = []; + isDisplay2:any = []; + isOrganisationOwner: any = []; + documents_list = [ + { + key:'shop_eat_act_cert', + dis_name:'Shop and Est Act Cert' + }, + { + key:'gst_Regn_cert', + dis_name:'GST Regn Cert' + }, + { + key:'export_import_cert', + dis_name:'Export / Import cert' + }, + { + key:'pf_regn', + dis_name:'PF Regn' + }, + { + key:'esic_regn', + dis_name:'ESIC Regn' + }, + { + key:'factory_cert', + dis_name:'Factory Cert' + }, + { + key:'practice_cert', + dis_name:'Cert of Practice' + }, + { + key:'eb_bill', + dis_name:'Electricity Bill' + }, + { + key:'rent_agreement', + dis_name:'Rent Agreement' + } + ] + neighbour_status_list:any=[{id:'',name:'Select'},{id:'Positive',name:'Positive'},{id:'Negative',name:'Negative'},{id:'Could not verify',name:'Could not verify'}] + pdlocation: any = []; + cmtlocality: any = []; + pdDetails: any = {pd_id:"1725"}; + // FormId: any; + existCompanyList: any = []; + mergeCompanyApplicant: any=[]; + applicants: any=[]; + currentDate: any; + pipe: any = new DatePipe('en-US'); + users: string; + spinner_access:boolean = false; + docs_tobe_collect: any = []; + creditManagerAnswer: any = null; + addressesList: any; + cityData: any=[]; + search: any; + pincodeData: any=[]; + cityDataValue: any=[]; + pincodeDataValue: any=[]; + alertnativeCityData: any=[]; + alertnativePincodeData: any=[]; + stateData: any =[]; + protected _onDestroy = new Subject(); + public filteredCity: ReplaySubject = new ReplaySubject(1); + public filteredState:ReplaySubject=new ReplaySubject(1) + addressTypes: any =[]; + locality: any =[]; + uomData: any =[]; + placeholderName: string = ''; + companyRelationshipList: any = []; + relationshipList: any = []; + customer_seg_abbr: any; + get questions() { return this.firstFormGroup.get('questions');} + + employerform_pdinfo:any; + is_complete_btn_enable: String= '0'; + + @ViewChild('stepper',{static:true}) private myStepper: MatStepper; + @ViewChild('last',{static:true}) form_last_element:ElementRef + + + public designationFilterCtrl:FormControl = new FormControl(); + public relationFilterCtrl:FormControl = new FormControl(); + public filteredcompanyRelationshipList:ReplaySubject = new ReplaySubject(1); + public filteredrelationshipList:ReplaySubject = new ReplaySubject(1); + public stateSearchControl:FormControl = new FormControl(); + + constructor(private _formBuilder:FormBuilder,private quesService:QuestionCategoryProvider, + private cameraProvider:CameraProvider,private actRoute:ActivatedRoute,private router:Router, + private toastProvider:ToastProvider,private _awsService:AwsServiceProvider,private navCtrl:NavController, + private loadingProvider:LoadingProvider, + private pdTriggerService:PdtriggerProvider,private gpsService:GpsService) { + this.actRoute.queryParams.subscribe(p=>{ + if(this.router.getCurrentNavigation().extras.state.pdDetails){ + this.pdDetails= this.router.getCurrentNavigation().extras.state.pdDetails + // this.employerform_pdinfo = this.pdDetails + this.docs_tobe_collect = this.router.getCurrentNavigation().extras.state.docs_collected + // this.questionDetails=this.router.getCurrentNavigation().extras.state.questionDetails + // this.FormId=this.router.getCurrentNavigation().extras.state.FormId + this.applicants = this.pdDetails.applicat_details; + this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2 && appt.pd_co_applicant_id != 0); + // this.applicants.push({'pd_co_applicant_id': 0,'applicant_name': "Others"}) + this.customer_seg_abbr = this.pdDetails.customer_segment_abbr + console.log("constr",this.pdDetails,this.docs_tobe_collect) + if(this.pdDetails.lender_short_name == 'CLIX' || this.pdDetails.lender_short_name == 'MWISE' || this.pdDetails.prod_catagory == 'LAEP') + { + let Index = this.stepperInfo.findIndex(vv=>vv.form_id == 'COMMENTS') + this.stepperInfo[Index].stepper_index+=1 + } + if(this.docs_tobe_collect == null || this.docs_tobe_collect == undefined || this.docs_tobe_collect.length == 0) { + // this.stepperInfo + for(let value of this.stepperInfo) { + if(value.is_dynamic) { + value.stepper_index-=1 + } + } + } + } + }) + this.users = this._awsService.getlocale() + } + filterList() { + this.relationFilterCtrl.valueChanges.pipe().subscribe(()=>{ + this.applyFilter(this.relationFilterCtrl.value,this.filteredrelationshipList,this.relationshipList,'name') + }) + this.designationFilterCtrl.valueChanges.pipe().subscribe(()=>{ + this.applyFilter(this.designationFilterCtrl.value,this.filteredcompanyRelationshipList,this.companyRelationshipList,'name') + }) + this.stateSearchControl.valueChanges.pipe().subscribe(()=>{ + this.applyFilter(this.stateSearchControl.value,this.filteredState,this.stateData,'name') + }) + } + applyFilter(filtered_text,filter_list,raw_list,obj_name) { + if (!raw_list) { + return; + } + // get the search keyword + let search = filtered_text; + if (!search) { + filter_list.next(raw_list.slice()); + return; + } else { + search = search.toLowerCase(); + } + // filter the banks + filter_list.next( + raw_list.filter(bank => bank[obj_name].toLowerCase().indexOf(search) > -1) + ); + } + + ngOnInit() { + this.loadingProvider.dataLoader() + console.log("Current customer segment",this.customer_seg_abbr); + this.firstFormGroup = this._formBuilder.group({ + questions:this._formBuilder.array([this.addGeneralControls(),this.addAddressControls(), + this.addBusinessGroupControls(),this.addNeighbourhoodControls(),this.addFinalRemarksControls(), + this._formBuilder.group({ + final_comments:['',Validators.compose([Validators.required])], + final_visit_status:['',Validators.compose([Validators.required])], + form_id:["COMMENTS"], + form_name:["Comments"] + }), this.addCreditManagerQueries()]) + + + }); + // console.log(this.firstFormGroup); + + setTimeout(()=>{ + + },5000); + this.addControl(); + console.log(this.firstFormGroup.value) + this.getMasters(); + this.currentDate = this.pipe.transform(new Date(), 'yyyy-MM-dd hh:mm:ss'); + this.addGeneralIndividualsGroup() + this.getFormDatas() + this.filterList() + } + + getInitialAddress(){ + // const control=this.pdQuestionAddress.controls['addresses'] + this.quesService.getAddressDetails(this.pdDetails.pd_id).subscribe(res=>{ + if(res.dataStatus == true){ + this.addressesList = res.records.filter(item => item.isactive == 1 && item.assigned_pd == this.pdDetails.pd_id); + + if(this.addressesList.length > 0){ + this.addressesList.forEach((datas,index)=>{ + this.getCityAndPincodeDetails(datas.fk_state,index,1) + + let obj ={ + 'address': datas.addressline1, + 'address_type': '', + 'address_type_others': '', + 'state': datas.fk_state, + 'city': datas.fk_city, + 'pincode':datas.pincode_id, + 'pd_address_id': datas.pd_address_id, + 'pincode_others': datas.other_pincode, + 'locality': '', + 'locality_others': '', + // 'locality_mixuse':'', + 'pd_location': '', + 'comment_locality': '', + 'estimated_area': '', + 'uom': '', + 'uom_others': '' + } + + // control.push(this.initAddress(obj)) + this.getQuestionControl().at(1).patchValue(obj) + console.log(this.firstFormGroup.value) + }) + } + else{ + // control.push(this.initAddress('')) + } + } + else{ + // control.push(this.initAddress('')) + } + }) + } + + getCityAndPincodeDetails(stateID: string,i,flag) { + + //this.pdQuestionAddress.controls['addresses']['controls'].controls + this.quesService.getStateWiseCities(stateID).subscribe(data => { + if (data.status == 200) { + this.cityData[i] = data.records.cities; + this.search=this.cityData[i] + this.pincodeData[i] = data.records.pincode; + + //this.filteredCity.next(this.cityData[i].slice()) + if(flag== 1){ + this.cityDataValue[i]=this.cityData[i].slice() + // this.pincodeData[i] = data.records.pincode; + this.pincodeDataValue[i]=this.pincodeData[i].slice() + } + else if(flag == 2){ + this.alertnativeCityData[i]=this.cityData[i].slice() + this.alertnativePincodeData[i]=this.pincodeData[i].slice() + } + } + //FOR PINCODE FREE TEXT + // let pin + // if(pincode != ''){ + // if(pincode != 1){ + // this.pincodeValue[i]=this.pincodeData[i].filter(res=>res.pincode_id == pincode).map(val=>val.pincode)[0] + // //this.pincodeValue[i]=[].concat.apply([],this.pincodeValue[i]) + + + // } + // } + }); +} + + + getMasters() { + this.quesService.getcommondrop('PDLOCATIONAPPROACH').subscribe(res=> + { + this.pdlocation = res; + if(this.pdlocation.dataStatus == true) + { + this.pdlocation = this.pdlocation.records.filter(loca=>loca.isactive ==1); + } + }) + this.quesService.getcommondrop('COMMENTSONLOCALITY').subscribe(res=> + { + this.cmtlocality = res; + if(this.cmtlocality.dataStatus ==true) + { + this.cmtlocality = this.cmtlocality.records.filter(loc=>loc.isactive ==1); + } + }); + this.quesService.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(res=>{ + if(res.dataStatus==true){ + this.existCompanyList=res.records.filter(val=>val.is_active == true) + console.log(this.existCompanyList) + } + let modifyCompanyList:any=[] + if(this.existCompanyList.length>0){ + modifyCompanyList=this.existCompanyList.map(element=>{ + return {id:element.company_order_id.toString(),name:element.company_name,group_id:1}; + }); + this.mergeCompanyApplicant.push({groupName: 'COMPANIES', groupValues: modifyCompanyList }) + + } + let modifyApplicantList:any=[] + if(this.applicants.length>0){ + modifyApplicantList=this.applicants.map(element=>{ + return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2}; + }) + modifyApplicantList.push({id:0,name:"Others",group_id:2}) + this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) + + } + console.log("company&Applicant",this.mergeCompanyApplicant) + }) + this.quesService.getcommondrop('STATE').subscribe(res=>{ + this.stateData=res['records'].filter(val=>val.isactive == 1); + this.filteredState.next(this.stateData.slice()) + + }) + this.quesService.getcommondrop('ADDRESSTYPE').subscribe(res=> + { + if(res['dataStatus']==true){ + this.addressTypes = res['records'].filter(add=>add.isactive==1); + // this.cacheObservable.register('addressType',this.addressTypes).subscribe(res=>{ + // this.data$=res.get$ + // }) + } + // this.cacheObservable.loadFromObservable() + }) + this.quesService.getcommondrop('LOCALITY').subscribe(res=> + { + if(res['dataStatus']==true) + { + this.locality = res['records'].filter(loc=>loc.isactive==1); + } + }) + this.quesService.getcommondrop('UOM').subscribe(res=>{ + this.uomData=res['records'].filter(val=>val.isactive == 1 && val.is_land_uom != 0) + }) + this.quesService.getcommondrop('COMPANYRELATIONSHIPS').subscribe(rr=>{ + if(rr['dataStatus']) { + this.companyRelationshipList = rr['records'].filter(vv=>vv.isactive == '1'); + this.filteredcompanyRelationshipList.next(this.companyRelationshipList.slice()) + let temp = [{master_name:'COMPANYRELATIONSHIPS',master_data:this.companyRelationshipList}] + this.employerform_pdinfo = this.pdDetails + this.employerform_pdinfo.masterData= temp; + } + + }) + this.quesService.getcommondrop('RELATIONSHIPS').subscribe(rr=>{ + this.relationshipList = rr['records'].filter(vv=>vv.isactive == '1'); + this.filteredrelationshipList.next(this.relationshipList.slice()) + }) + } + + getFormDatas() { + let params = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':"25"} + this.quesService.retiverForm(params).subscribe(result=>{ + if(result && result['dataStatus']) { + this.is_complete_btn_enable = result['records'].is_form_validated + this.generateGroupControls(result['records'].questions) + } + else { + this.getInitialAddress(); + this.getBusinessDocumentsSighted() + } + this.loadingProvider.dismissLoader() + },err=>{ + console.log("getPDFormDetails Error",err) + this.loadingProvider.dismissLoader(); + this.toastProvider.pdTriggerappmessage("Network Error",'danger'); + }) + // this.quesService.getAllQuesSample().subscribe((result:any)=> { + // console.log("Result",result) + // if(result) { + // // this.generateGroupControls(result.questions) + // } + // }) + } + + generateGroupControls(datas) { + if(datas && datas.length > 0) { + // FOR ADDRESS FORM + let address_index = datas.findIndex(val=>val.form_id == "5") + if(address_index && datas[address_index]) { + if(datas[address_index].hasOwnProperty('state') && datas[address_index].state) { + this.getCityAndPincodeDetails(datas[address_index].state,0,1); + if(datas[address_index].hasOwnProperty('alternative_addresses') && datas[address_index].alternative_addresses && datas[address_index].alternative_addresses[0].alternative_state) { + this.getCityAndPincodeDetails(datas[address_index].alternative_addresses[0].alternative_state,0,2); + } + } + if(datas[address_index].hasOwnProperty('address_type') && datas[address_index].address_type) { + if(datas[address_index].address_type != 1) { + let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas[address_index].address_type)[0]; + if(selectedAddressType != undefined && selectedAddressType.hasOwnProperty('address_type')){ + this.selectedAddressType(selectedAddressType.address_type); + } + } + else { + this.selectedAddressType(datas[address_index].address_type_others); + } + } + + + + } + // FOR BUSINESS GROUP + let business_group_index = datas.findIndex(val=>val.form_id == "BUSINESS_GROUP") + console.log(business_group_index); + if(business_group_index) { + if(datas[business_group_index].hasOwnProperty('business_group')) { + datas[business_group_index].business_group.forEach(group_obj=>{ + // For Documents Sighted + if(group_obj.form_id == "13" && group_obj.hasOwnProperty('documents_sighted') && group_obj.documents_sighted == 'yes') { + if(group_obj.documents_info) { + group_obj.documents_info.forEach(doc=>{ + this.addDocumentsGroup() + }) + } + } + if(group_obj.form_id == "13" && group_obj.hasOwnProperty('office_photographs') && group_obj.office_photographs) { + group_obj.office_photographs.forEach(()=>{ + this.addMoreBusinessOfficeImage() + }) + } + // FOR BUSINESS ASSET SIGHT IMAGE HANDLING + if(group_obj.form_id == "22" && group_obj.hasOwnProperty('business_sight_image') && group_obj.business_sight_image) { + group_obj.business_sight_image.forEach(()=>{ + this.addMoreBusinessAssetSightImage() + }) + } + // For Other Documents images + if(group_obj.form_id == "13" && group_obj.hasOwnProperty('other_documents') && group_obj.other_documents == 'yes') { + if(group_obj.other_documents_info) { + group_obj.other_documents_info.forEach(doc=>{ + this.addOtherDocumentsGroup() + }) + } + } + // FOR STOCK IMAGES + if(group_obj.form_id == "11" && group_obj.hasOwnProperty('images') && group_obj.images) { + group_obj.images.forEach(()=>{ + this.addMoreStockImage() + }) + } + }) + } + } + // FOR CREDIT MANAGER + let crdmngr_index = datas.findIndex(val=>val.form_id == "24") + console.log(business_group_index); + if(crdmngr_index) { + // if(group_obj.form_id == "24" && group_obj.hasOwnProperty('docs_to_be_sighted') && group_obj.docs_to_be_sighted + // && this.docs_tobe_collect != null && this.docs_tobe_collect != undefined && this.docs_tobe_collect.length > 0) { + this.creditManagerAnswer = datas[crdmngr_index] + // } + } + // FOR NEIGHBOURHOOD GROUP GENERATION + let neighbour_group_index = datas.findIndex(val=>val.form_id == "19") + console.log(business_group_index); + if(neighbour_group_index) { + this.toggleVisibility(datas[neighbour_group_index].neighbourhood_list[0].did_not_know_the_business_operation,0,1) + this.toggleVisibility(datas[neighbour_group_index].neighbourhood_list[0].did_not_know_the_owner,0,2) + for(let i=1; i < datas[neighbour_group_index].neighbourhood_list.length ; i++) { + // datas[neighbour_group_index].neighbourhood_list.forEach(()=>{ + let neighbour_obj= datas[neighbour_group_index].neighbourhood_list[i] + this.toggleVisibility(neighbour_obj.did_not_know_the_business_operation,i,1) + this.toggleVisibility(neighbour_obj.did_not_know_the_owner,i,2) + + this.addNeighbourhoodGroup() + this.getOtherOrganisationOwner(neighbour_obj.organisation_owner,i) + // }) + + } + } + this.firstFormGroup.get('questions').patchValue(datas); + } + } + + getBusinessDocumentsSighted() { + this.quesService.getBusinessDocsToVendorForm(this.pdDetails.pd_id).subscribe(res=>{ + if(res['dataStatus']) { + let data= res['records']; + if(data && data.length > 0) { + let docs_value_arr:any=[] + data.forEach(rr=>{ + this.addDocumentsGroup() + docs_value_arr.push({document_name:rr}); + }) + + let temp:any = {documents_sighted: "yes",documents_info:docs_value_arr} + console.log("Current docs sighted value",docs_value_arr,temp,this.getBusinessInfoControls().at(0)) + this.getBusinessInfoControls().at(0).patchValue(temp) + } + } + }) + } + + createControl() { + return this._formBuilder.group({ + // firstCtrl:['', Validators.required], + // secondCtrl:['', Validators.required] + }) + } + action() { + let merged:object = {} + // for(let val of this.firstFormGroup.value.formArray) { + // console.log("dsdf",val); + // if(val) + // { + // Object.assign(merged,val) + // } + // } + // console.log("das",merged) + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let stockCtrl = business_group_ctrl.at(2).get('images') as FormArray + // console.log("stock",stockCtrl); + console.log(this.firstFormGroup.value,JSON.stringify(this.firstFormGroup.value)); + let neighbourCtrl = formArray.at(3).get('neighbourhood_list') as FormArray + // console.log(neighbourCtrl); + return stockCtrl.controls + } + addControl() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + // formArray.insert(23,this.createControl()); + } + + // START OF FORM CONTROL NAME GROUPS + addGeneralControls() { + return this._formBuilder.group({ + individuals:this._formBuilder.array([]), + // is_person_met_id_proof:[''], + // is_person_met_pic:[''], + // is_person_met:[false], + form_id:['18'], + form_name:["General Info"], + // general_remark:[''], + person_met_entered:[''], + designation_entered:[''], + relation_entered:[''], + relation_to:[''], + person_met_entered_pic:[''], + person_met_entered_id_proof:[''] + }) + } + addGeneralIndividualControls(applicant_obj) { + return this._formBuilder.group({ + is_person_met_id_proof:[''], + is_person_met_pic:[''], + is_person_met:['',Validators.required], + pd_co_applicant_id:[applicant_obj.pd_co_applicant_id], + applicant_name:[applicant_obj.applicant_name] + }) + } + addAddressControls() { + return this._formBuilder.group({ + address:['',Validators.compose([Validators.required])], + state:['',Validators.compose([Validators.required])], + stateSearch:[''], + city:['',Validators.compose([Validators.required])], + citySearch:[''], + pincode:['',Validators.compose([Validators.required])], + pinSearch:[''], + alternative_addresses:this._formBuilder.array([ + this._formBuilder.group({ + alternative_address:[''], + alternative_state:[''], + stateSearch:[''], + alternative_city:[''], + citySearch:[''], + alternative_pincode:[''], + pinSearch:[''], + alternative_pincode_others:[''], + reason_for_alternative_address:[''] + }) + ]), + address_type:['',Validators.compose([Validators.required])], + address_type_others:[''], + locality:['',Validators.compose([Validators.required])], + locality_others:[''], + estimated_area:['',Validators.compose([Validators.required])], + uom:['',Validators.compose([Validators.required])], + uom_others:[''], + is_pd_done_on_initiated_address:[true], + pd_location:['',Validators.compose([Validators.required])], + pd_location_pic:['',Validators.compose([Validators.required])], + comment_locality:['',Validators.compose([Validators.required])], + form_id:['5'], + form_name:["Address Info"], + }) + } + addBusinessGroupControls() { + if(this.customer_seg_abbr != 'SAL') { + return this._formBuilder.group({ + business_group:this._formBuilder.array([ + this.addBusinessInfoControls(),this.addBusinessAssetControls(),this.addStockControls(), + ]), + form_id:["BUSINESS_GROUP"], + form_name:["Business Group Info"] + }) + } + else { + return this._formBuilder.group({ + form_id:["BUSINESS_GROUP"], + form_name:["Business Group Info"] + }) + } + } + addStockControls() { + return this._formBuilder.group({ + form_name:"Stock Info", + form_id:["11"], + is_stock_photo:['',Validators.required], + images:this._formBuilder.array([ + // this._formBuilder.group({ + // image:["https://lh3.googleusercontent.com/proxy/euOnni6JKoCJKwXq9Hq8c6fkRaxI5SYQVsHUwx_w_Wt_9zGXsABxnFsjRv7_E3Xer35VR1oalGBRKWdlwQPMo9SoDqOrmx9h7zqmAXMG37rcrpaU_jPXMXAdffKjB0M_zy3yQNJRpOKvqUlx2JmvB68r8cDCGbVUQvW8Zk2yoR4I23i4ZM7U"] + // }), + // this._formBuilder.group({ + // image:["https://lh3.googleusercontent.com/proxy/euOnni6JKoCJKwXq9Hq8c6fkRaxI5SYQVsHUwx_w_Wt_9zGXsABxnFsjRv7_E3Xer35VR1oalGBRKWdlwQPMo9SoDqOrmx9h7zqmAXMG37rcrpaU_jPXMXAdffKjB0M_zy3yQNJRpOKvqUlx2JmvB68r8cDCGbVUQvW8Zk2yoR4I23i4ZM7U"] + // }) + ]) + }) + } + addStockImageControl() { + return this._formBuilder.group({ + image:[''] + }) + } + addCreditManagerQueries() { + return this._formBuilder.group({ + form_name:"Credit Manager Queries", + form_id:["24"], + docs_to_be_sighted:this._formBuilder.array([]) + }) + } + addEmployerInfoForm() { + return this._formBuilder.group({ + form_name:"Employer Information", + form_id:["12"], + // docs_to_be_sighted:this._formBuilder.array([]) + }) + } + addBusinessInfoControls() { + return this._formBuilder.group({ + officer_total:['',Validators.compose([Validators.required])], + was_the_company_name_board_sighted:['',Validators.compose([Validators.required])], + name_board_sighted_pic:['',Validators.compose([Validators.required])], + documents_sighted:['',Validators.compose([Validators.required])], + documents_info:this._formBuilder.array([]), + other_documents:['',Validators.compose([Validators.required])], + other_documents_info:this._formBuilder.array([]), + office_photographs:this._formBuilder.array([]), + form_name:["Business Info"], + form_id:["13"] + }) + } + addBusinessInfoDocsControls() { + return this._formBuilder.group({ + document_name:['',Validators.compose([Validators.required])], + document_image:['',Validators.compose([Validators.required])] + }) + } + addBusinessInfoOtherDocsControls() { + return this._formBuilder.group({ + document:['',Validators.compose([Validators.required])], + document_pic:['',Validators.compose([Validators.required])] + }) + } + addBusinessAssetControls() { + return this._formBuilder.group({ + business_is_pd_visited:['',Validators.compose([Validators.required])], + business_is_pd_visited_pic:[''], + business_is_pd_visited_yes:[''], + specify_pd_visited:[''], + business_asset_sight:['',Validators.compose([Validators.required])], + business_sight_image:this._formBuilder.array([]), + // business_pd_visited_remark:[''], + form_name:["Business Assets"], + form_id:["22"] + }) + } + + addNeighbourhoodControls() { + return this._formBuilder.group({ + form_id:["19"], + form_name:["Neighbourhood Details"], + neighbourhood_list:this._formBuilder.array([this.addNeighbourListControls()]), + neighbourhood_status:[''], + neighbour_reference_remark:[''] + }) + } + addNeighbourListControls() { + return this._formBuilder.group({ + neighbourhood_name:[''], + do_know:[''], + did_not_know_the_business_operation:[''], + how_long_do_know_in_year:[''], + how_long_do_know_in_month:[''], + organisation_owner:[''], + other_organisation_owner:[''], + did_not_know_the_owner:[''], + }) + } + + addFinalRemarksControls() { + return this._formBuilder.group({ + form_name:["Final Remarks"], + form_id:["20"], + outlet_location:[''], + is_competition:[''], + demolition_activity:[''], + sealing_activity:[''], + appx_outlet_or_stores:[''], + comment_of_demolition_activity:[''], + comment_of_sealing_activity:[''], + + }) + } + // END OF FORM CONTROL NAME GROUPS + + // START OF GETTING PARTICULAR FORM CONTROLS + getStockControl() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let stockCtrl = business_group_ctrl.at(2).get('images') as FormArray + // console.log("stock",stockCtrl); + // console.log(this.firstFormGroup.value); + return stockCtrl.controls + } + getBusinessInfoOfficePhotControls() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let stockCtrl = business_group_ctrl.at(0).get('office_photographs') as FormArray + // console.log("stock",stockCtrl); + // console.log(this.firstFormGroup.value); + return stockCtrl.controls + } + getBusinessAssetSightImage() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let stockCtrl = business_group_ctrl.at(1).get('business_sight_image') as FormArray + // console.log("stock",stockCtrl); + // console.log(this.firstFormGroup.value); + return stockCtrl.controls + } + getBusinessInfoDocsControl() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let docsCtrl = business_group_ctrl.at(0).get('documents_info') as FormArray + // console.log("stock",docsCtrl); + // console.log(this.firstFormGroup.value); + return docsCtrl.controls + } + getBusinessInfoOtherDocsControl() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let docsCtrl = business_group_ctrl.at(0).get('other_documents_info') as FormArray + // console.log("stock",docsCtrl); + // console.log(this.firstFormGroup.value); + return docsCtrl.controls + } + getBusinessInfoControls() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + return business_group_ctrl + } + getNeibhourControl() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let neighbourCtrl = formArray.at(3).get('neighbourhood_list') as FormArray + // console.log(neighbourCtrl); + return neighbourCtrl.controls + } + getQuestionControl() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + return formArray + } + // END OF GETTING PARTICULAR FORM CONTROLS + + //START OF ADD OR REMOVE MORE FORMS OR IMAGES + addMoreStockImage(form_id?) { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let stockCtrl = business_group_ctrl.at(2).get('images') as FormArray + // console.log("stock",stockCtrl); + // stockCtrl.push(this.addStockImageControl()) + if(form_id) { + this.capturePic(stockCtrl,'stock_image ',form_id) + } + else { + stockCtrl.push(this.addStockImageControl()) + // stockCtrl = stockCtrl.at(stockCtrl.length-1)['controls'].image + } + // console.log(this.firstFormGroup.value); + } + addMoreBusinessOfficeImage(form_id?) { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let officeControl = business_group_ctrl.at(0).get('office_photographs') as FormArray + // console.log("stock",stockCtrl); + // stockCtrl.push(this.addStockImageControl()) + if(form_id) { + this.capturePic(officeControl,'office_photograph ',form_id) + } + else { + officeControl.push(this.addStockImageControl()) + // stockCtrl = stockCtrl.at(stockCtrl.length-1)['controls'].image + } + // console.log(this.firstFormGroup.value); + } + addMoreBusinessAssetSightImage(form_id?) { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let stockCtrl = business_group_ctrl.at(1).get('business_sight_image') as FormArray + // console.log("stock",stockCtrl); + // stockCtrl.push(this.addStockImageControl()) + if(form_id) { + this.capturePic(stockCtrl,'business_sight_image ',form_id) + } + else { + stockCtrl.push(this.addStockImageControl()) + // stockCtrl = stockCtrl.at(stockCtrl.length-1)['controls'].image + } + // console.log(this.firstFormGroup.value); + } + + addGeneralIndividualsGroup() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + let individualCtrl = formArray.at(0).get('individuals') as FormArray + if(this.applicants.length > 0) + { + this.applicants.forEach(applicant_obj=>{ + individualCtrl.push(this.addGeneralIndividualControls(applicant_obj)) + }) + } + } + + addNeighbourhoodGroup() { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let neighbourCtrl = formArray.at(3).get('neighbourhood_list') as FormArray + // console.log(neighbourCtrl); + neighbourCtrl.push(this.addNeighbourListControls()) + this.matExpanded= neighbourCtrl.length-1 + } + + removeneighbourhoodGroup(index) { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let neighbourCtrl = formArray.at(3).get('neighbourhood_list') as FormArray + // console.log(neighbourCtrl); + if(neighbourCtrl.length==1) + { + neighbourCtrl.reset(); + }else{ + neighbourCtrl.removeAt(index); + this.matExpanded = neighbourCtrl.length-1 + } + } + addDocumentsGroup( ) { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let docsCtrl = business_group_ctrl.at(0).get('documents_info') as FormArray + docsCtrl.push(this.addBusinessInfoDocsControls()) + } + + removeDocumentsGroup(index) { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let docsCtrl = business_group_ctrl.at(0).get('documents_info') as FormArray + if(docsCtrl.length==1) + { + docsCtrl.reset(); + }else{ + docsCtrl.removeAt(index); + } + } + addOtherDocumentsGroup( ) { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let docsCtrl = business_group_ctrl.at(0).get('other_documents_info') as FormArray + docsCtrl.push(this.addBusinessInfoOtherDocsControls()) + } + + removeOtherDocumentsGroup(index) { + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // console.log(business_group_ctrl); + let docsCtrl = business_group_ctrl.at(0).get('other_documents_info') as FormArray + if(docsCtrl.length==1) + { + docsCtrl.reset(); + }else{ + docsCtrl.removeAt(index); + } + } + //END OF ADD OR REMOVE MORE FORMS OR IMAGES + + toggleVisibility(e,index,flag){ + let val + + if(flag == 1){ + this.isDisplay[index] = e; + } + else if(flag==2){ + this.isDisplay2[index] = e; + } + } + getOtherOrganisationOwner(value,i) { + //console.log('value',value,'I',i); + let formArray = this.firstFormGroup.get('questions') as FormArray; + // console.log(formArray); + let Ctrls = formArray.at(3).get('neighbourhood_list') as FormArray + // console.log(Ctrls); + //console.log('ParCtrls',Ctrls); + let ChdCtrls:any = Ctrls.controls[i]; + // console.log('ChdCtrls',ChdCtrls); + // return; + + + let Avaliablity = 1; + // console.log('val',value); + if(value.length>0){ + value.forEach(option => { + if(option.id == 0 && option.group_id == 2){ + Avaliablity = option.id; + } + }); + } + if(Avaliablity == 0){ + // console.log('if Avaliablity',Avaliablity); + + ChdCtrls.controls.other_organisation_owner.setValidators([Validators.required]); + this.isOrganisationOwner[i] = true; + }else if(Avaliablity == 1){ + // console.log('else Avaliablity',Avaliablity); + // console.log('esle this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]); + ChdCtrls.controls.other_organisation_owner.setValue(''); + ChdCtrls.controls.other_organisation_owner.clearValidators(); + this.isOrganisationOwner[i] = false; + // console.log('else this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]); + } + + ChdCtrls.controls.other_organisation_owner.updateValueAndValidity(); + } + + capturePic(controls,img_name?:String,form_id?) { + console.clear(); + console.log(controls) + // return; + // controls.setValue("pic"); + + // this.cameraProvider.getpicture().then(res => { + this.cameraProvider.showImageDialog().then((res:any)=>{ + console.log("g",res) + if (res != 'error') { + let geoCoordinates = localStorage.getItem('current_coordinates') + // this.cons.getGeoTag().then(geoCoordinates=>{ + this.cameraProvider.addWatermarks(res).then(watermarkedImage => { + console.log("image name",img_name,img_name === 'office_photograph ') + if(img_name == 'stock_image ' || img_name == 'office_photograph ' || img_name == 'business_sight_image ') { + console.log("Before") + controls.push(this.addStockImageControl()) + console.log("after") + img_name = img_name+String(controls.length) + controls = controls.at(controls.length-1)['controls'].image + } + console.log("controls",controls); + controls.setValue(watermarkedImage) + let bucket: any = [] + bucket.push({ 'image': watermarkedImage, 'Name': img_name, 'link': geoCoordinates }); + let records: any = { + 'pd_id': this.pdDetails.pd_id, + 'formid': form_id, + 'images': bucket, + 'company_id': null, + } + // For Business Groups + if(form_id == '11' || form_id == '13' || form_id == '22') { + records.company_id = '1' + } + console.log("params savePDImage", records) + this.quesService.savePDImages(records).subscribe(result => { + if(result['dataStatus']) { + if(img_name == 'Person Met Pic') { + this.sendGeoCords(geoCoordinates) + } + controls.setValue(result['uri']) + } + else { + console.log(result); + controls.setValue("") + this.toastProvider.pdTriggerappmessage("Something went wrong!!",'warning'); + } + },err=>{ + controls.setValue("") + console.log(err) + this.toastProvider.pdTriggerappmessage("Network Error","danger") + }) + }) + } + }) + } + sendGeoCords(location) { + let params = {"pd_id":this.pdDetails.pd_id,"geo_location":location,"comment":"","fk_updatedby":this.users} + this.quesService.renewSatellite(params).subscribe(rr=>{ + + }) + } + compareObjects(o1: any, o2: any) { + if(o1.id == o2.id && o1.group_id == o2.group_id) + return true; + else return false + } + + ConvertMonthintoYear(itemrow,e,flag){ + if(flag == 2){ + + let year = itemrow.controls.year_relation_applicant.value; + let converted_month : number = e%12; + let converted_year : number = e/12; + itemrow.controls.year_relation_applicant.setValue(+year + +Math.floor(converted_year)); + itemrow.controls.months_relation_applicant.setValue(Math.floor(converted_month)); + } + else if(flag == 1){ + + let year = itemrow.controls.how_long_do_know_in_year.value; + let converted_month : number = e%12; + let converted_year : number = e/12; + itemrow.controls.how_long_do_know_in_year.setValue(+year + +Math.floor(converted_year)); + itemrow.controls.how_long_do_know_in_month.setValue(Math.floor(converted_month)); + } + } + onDocsSightedChange(value,flag) { + // 1 - Documents sighted + // 2 - Other Documents + + let formArrayName = 'documents_info' + if(flag != 1) { + formArrayName = 'other_documents_info' + } + if(value == 'yes') { + if(flag == 1) { + this.addDocumentsGroup() + } + else { + this.addOtherDocumentsGroup(); + formArrayName = 'other_documents_info' + } + } + else { + + let formArray = this.firstFormGroup.get('questions') as FormArray; + let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + let docsCtrl = business_group_ctrl.at(0).get(formArrayName) as FormArray + while(docsCtrl.length !== 0) { + docsCtrl.removeAt(0) + } + } + } + + saveApplicantInfo(applicant_obj,image_key) { + console.log(applicant_obj); + this.cameraProvider.showImageDialog().then((res:any)=>{ + console.log("g",res) + if (res != 'error') { + let geoCoordinates = localStorage.getItem('current_coordinates') + // this.cons.getGeoTag().then(geoCoordinates=>{ + this.cameraProvider.addWatermarks(res).then(watermarkedImage => { + applicant_obj.controls[image_key].setValue(watermarkedImage); + let params = { + "pd_co_applicant_id":applicant_obj.value.pd_co_applicant_id, + "applicant_name":applicant_obj.value.applicant_name, + "is_person_met":applicant_obj.value.is_person_met, + "fk_pd_id":this.pdDetails.pd_id, + "link":geoCoordinates + } + params[image_key] = applicant_obj.value[image_key] + + this.quesService.saveApplicantImgFromVendorForm(params).subscribe(result=>{ + if(result['dataStatus']) { + this.sendGeoCords(geoCoordinates) + applicant_obj.controls[image_key].setValue(result['uri']); + } + else { + applicant_obj.controls[image_key].setValue(""); + console.log(result); + this.toastProvider.pdTriggerappmessage("Something went wrong!!",'warning'); + } + },err=>{ + applicant_obj.controls[image_key].setValue(""); + console.log(err) + this.toastProvider.pdTriggerappmessage("Network Error","danger") + }) + }) + } + }) + } + public findInvalidControls() { + const invalid = []; + let msg='' + let formArray = this.firstFormGroup.get('questions') as FormArray; + console.log(formArray); + for( const group of formArray['controls']) { + if(group.invalid) { + console.log(group,group.value.form_name); + // debugger; + msg= group.value.form_name+" are not complete" + let index = this.stepperInfo.findIndex(vv=>vv.form_id == group.value.form_id); + console.log("Index",index); + if(index != -1) { + msg = this.stepperInfo[index].form_name+" are not complete" + this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index + } + for (const name in group['controls']) { + if (group['controls'][name].invalid) { + invalid.push(name); + let invalidFields = [].slice.call(document.getElementsByClassName('ng-invalid')); + let firstInvalidField; + for(let val in invalidFields){ + console.log("Node name",invalidFields[val].nodeName,invalidFields) + if( invalidFields[val].nodeName == 'MAT-FORM-FIELD' || invalidFields[val].nodeName == 'MAT-SELECT' || invalidFields[val].nodeName == 'TEXTAREA' || invalidFields[val].nodeName == 'MAT-RADIO-GROUP' || invalidFields[val].nodeName == "INPUT"){ //INPUT FOR INPUT FIELD + firstInvalidField=invalidFields[val] + break; + } + } + if(firstInvalidField != undefined){ + setTimeout(()=>{ + firstInvalidField.scrollIntoView({block: "start", inline: "nearest"}) + // firstInvalidField.style.background = 'red' + firstInvalidField.classList.remove('field_highlight') + setTimeout(()=>{ + firstInvalidField.classList.add('field_highlight') + },300) + },500) + } + else { + msg = this.stepperInfo[index].form_name+" images are not taken" + } + + + console.log("kkdd",group['controls'][name],firstInvalidField) + + // if(typeof(group['controls'][name].value) == 'string') { + // return name+' field is not ' + // } + break + } + } + break; + } + } + // let business_group_ctrl = formArray.at(2).get('business_group') as FormArray + // const controls = this.getQuestionControl().at(1)['controls'] + // for (const name in controls) { + // if (controls[name].invalid) { + // invalid.push(name); + // } + // } + return msg; +} +// public findInvalidControls() { +// const controls = this.quesAnsForm.get('questions')['controls']; +// console.log(controls) +// for (const name in controls) { +// if (controls[name].invalid) { +// let invalidFields = [].slice.call(document.getElementsByClassName('ng-invalid')); +// let firstInvalidField; +// for(let val in invalidFields){ +// if( invalidFields[val].nodeName == 'MAT-FORM-FIELD'){ //INPUT FOR INPUT FIELD +// firstInvalidField=invalidFields[val] +// break; +// } +// } +// if(firstInvalidField != undefined){ +// firstInvalidField.scrollIntoView(true) +// } +// break; +// } +// } +// // return invalid; +// } + onSubmit(flag?) { + if(this.spinner_access) { + this.toastProvider.pdTriggerappmessage("Form processing please wait..."); + return; + } + if(this.firstFormGroup.invalid && flag != 'go_back') { + console.log('form value',this.firstFormGroup.getRawValue()) + let invalidMsg = "Please Fill all the required fields and capture the image" + let tempMsg = this.findInvalidControls() + if(tempMsg != '') { + invalidMsg =tempMsg + } + this.toastProvider.pdTriggerappmessage(invalidMsg); + return + } + // return; + let records= this.firstFormGroup.getRawValue() + if(flag != 'go_back') { + let business_group=records.questions[2] + let index = this.stepperInfo.findIndex(vv=>vv.form_id == business_group.form_id); + console.log("Index",index); + + // FOR OFFICE IMAGE CHECK (3 REQUIRED) + if(business_group.hasOwnProperty('business_group') && business_group.business_group.length > 0) { + let photCheck = business_group.business_group[0] + if(photCheck.hasOwnProperty('office_photographs') && photCheck.office_photographs.length <3) { + if(index != -1) { + this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index + } + this.toastProvider.pdTriggerappmessage("Minimum 3 photos required on Workplace Photograph") + return + } + } + // FOR STOCK IMAGE CHECK (3 REQUIRED) + if(business_group.hasOwnProperty('business_group') && business_group.business_group.length > 2) { + let photCheck = business_group.business_group[2] + if(photCheck.hasOwnProperty('is_stock_photo') && photCheck.is_stock_photo == 'yes' && photCheck.hasOwnProperty('images') && photCheck.images.length <3) { + if(index != -1) { + this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index + } + this.toastProvider.pdTriggerappmessage("Minimum 3 photos required on Stock Photographs") + return + } + } + // FOR BUSINESS ASSET IMAGE CHECK (1 REQUIRED) + if(business_group.hasOwnProperty('business_group') && business_group.business_group.length > 2) { + let photCheck = business_group.business_group[1] + if(photCheck.hasOwnProperty('business_asset_sight') && photCheck.business_asset_sight == 'yes' && photCheck.hasOwnProperty('business_sight_image') && photCheck.business_sight_image.length <1) { + if(index != -1) { + this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index + } + this.toastProvider.pdTriggerappmessage("Minimum 1 photo required on Business asset sighted photographs") + return + } +} +} + this.spinner_access = true; + + console.log(records); + records.pdid = this.pdDetails.pd_id; + records.formid = "25"; + records.fk_createdby = this.users; + records.is_form_validated = flag == 'go_back' ? '0' : '1' + if(flag == 'go_back') { + this.loadingProvider.pdloader('Partial data save is in progress. Please wait...') + } + this.quesService.saveForm(records).subscribe(result=>{ + if(result['dataStatus']) { + if(flag != 'go_back') { + this.toastProvider.pdTriggerappmessage("Saved Successfully...",'primary'); + this.is_complete_btn_enable = '1' + this.form_last_element.nativeElement.scrollIntoView(true) + } + else{ + this.toastProvider.pdTriggerappmessage("Partial data saved successfully..",''); + } + this.firstFormGroup.markAsPristine(); + this.firstFormGroup.markAsUntouched(); + // if(flag != 'go_back') { + // setTimeout(()=>{ + // this.navCtrl.pop(); + // },3000) + // } + } + else { + this.toastProvider.pdTriggerappmessage("Something went wrong",'warning'); + } + this.spinner_access = false + if(flag == 'go_back') + { + this.firstFormGroup.markAsPristine(); + this.firstFormGroup.markAsUntouched(); + this.loadingProvider.dismissLoader(); + this.navCtrl.pop(); + } + },err=>{ + console.log("Error in savePDFormDetails",err); + this.toastProvider.pdTriggerappmessage("Network Error",'danger'); + this.spinner_access = false + if(flag == 'go_back') + { + this.firstFormGroup.markAsPristine(); + this.firstFormGroup.markAsUntouched(); + this.loadingProvider.dismissLoader(); + this.navCtrl.pop(); + } + }) + } + + // FOR CHECKING THE UNSAVED CHANGES + + canDeactivate(){ + // this.timer.unsubscribe(); + console.log(this.firstFormGroup.dirty) + if(this.firstFormGroup.dirty){ + this.onSubmit('go_back'); + // return this.constant.chekAlertOnLeave().then(res=>{ + // console.log(res) + // return res + // }) + // return true; + } + else{ + return true + } + } + countRowsForTextarea(text){ + + + + if(text !='' && text != undefined){ + if(text.length%100 > 5) + return 5; + else if(text.length%100 <= 3) + return 3; + else return Math.floor(text.length%100); + + } +} +searchFun(control:any,i:number,option,flag){ + if(flag == 1) { +console.log(control,this.getQuestionControl().at(1)); +control = this.getQuestionControl().at(1) + } + if (option == 'city' && flag ==1) { + control.controls['citySearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(() => { + this.SearchCity(control.controls['citySearch'].value, i); + }) + } + if (option == 'state') { + + control.controls['stateSearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(()=>{ + this.searchState(control.controls['stateSearch'].value) + }) + } + if (option == 'pin' && flag ==1) { + + control.controls['pinSearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(()=>{ + this.searchPin(control.controls['pinSearch'].value,i) + }) + } + if (option == 'city' && flag ==2) { + control.controls['citySearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(() => { + this.SearchAlternativeCity(control.controls['citySearch'].value, i); + }) + } + if (option == 'pin' && flag ==2) { + + control.controls['pinSearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(()=>{ + this.searchAlternativePin(control.controls['pinSearch'].value,i) + }) + } +} +searchPin(val:any,index:number){ + if(!this.pincodeData[index]){ + return + } + let searchValue=val + if(!searchValue){ + this.pincodeDataValue[index]=this.pincodeData[index].slice() + return + }else{ + searchValue=searchValue.toLowerCase() + } + this.pincodeDataValue[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1) +} +SearchCity(val: any, i: number) { + if (!this.cityData[i]) { + return + } + let searchValue = val + if (!searchValue) { + // this.filteredCity.next(this.cityData[i].slice()) + this.cityDataValue[i]=this.cityData[i].slice() + return + } else { + searchValue = searchValue.toLowerCase() + } + this.cityDataValue[i]=this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1) + // this.filteredCity.next( + // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1) + // ) + +} +searchAlternativePin(val:any,index:number){ + if(!this.pincodeData[index]){ + return + } + let searchValue=val + if(!searchValue){ + this.alertnativePincodeData[index]=this.pincodeData[index].slice() + return + }else{ + searchValue=searchValue.toLowerCase() + } + this.alertnativePincodeData[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1) +} +SearchAlternativeCity(val: any, i: number) { + if (!this.cityData[i]) { + return + } + let searchValue = val + if (!searchValue) { + // this.filteredCity.next(this.cityData[i].slice()) + this.alertnativeCityData[i]=this.cityData[i].slice() + return + } else { + searchValue = searchValue.toLowerCase() + } + this.alertnativeCityData[i]=this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1) + // this.filteredCity.next( + // this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1) + // ) + +} +searchState(val: any) { + + if (!this.stateData) { + return + } + let searchVal = val + if (!searchVal) { + this.filteredState.next(this.stateData.slice()) + return + } + else { + searchVal = searchVal.toLowerCase() + } + this.filteredState.next( + this.stateData.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1) + ) +} +selectedAddressType(e: any) { + this.placeholderName = 'Estimated area of the ' + e; +} +remarksEnableFun() { + // console.log(this.getQuestionControl().at(0).get('individuals')) + this.getQuestionControl().at(0).get('individuals').updateValueAndValidity() + let applicant_arr = this.getQuestionControl().at(0).get('individuals').value + if(applicant_arr && applicant_arr.length > 0) { + let returnVal= false + // console.log(applicant_arr.filter(vv=>vv.is_person_met === "").length,applicant_arr.length,applicant_arr) + if(applicant_arr.filter(vv=>vv.is_person_met == true).length == 0 && applicant_arr.filter(vv=>vv.is_person_met === '').length != applicant_arr.length) { + // this.getQuestionControl().at(0)['controls'].general_remark.setValidators(Validators.required) + // this.getQuestionControl().at(0)['controls'].general_remark.updateValueAndValidity(); + this.getQuestionControl().at(0)['controls'].person_met_entered.setValidators(Validators.required) + this.getQuestionControl().at(0)['controls'].designation_entered.setValidators(Validators.required) + this.getQuestionControl().at(0)['controls'].relation_entered.setValidators(Validators.required) + this.getQuestionControl().at(0)['controls'].relation_to.setValidators(Validators.required) // return true + this.getQuestionControl().at(0)['controls'].person_met_entered_pic.setValidators(Validators.required) + returnVal = true + } + else { + this.getQuestionControl().at(0)['controls'].person_met_entered.setValue(''); + this.getQuestionControl().at(0)['controls'].designation_entered.setValue(''); + this.getQuestionControl().at(0)['controls'].relation_entered.setValue(''); + this.getQuestionControl().at(0)['controls'].relation_to.setValue(''); + // console.log(this.getQuestionControl().at(0)['controls'].general_remark.value) + // this.getQuestionControl().at(0)['controls'].general_remark.clearValidators(); + // this.getQuestionControl().at(0)['controls'].general_remark.updateValueAndValidity(); + this.getQuestionControl().at(0)['controls'].person_met_entered.clearValidators(); + this.getQuestionControl().at(0)['controls'].designation_entered.clearValidators(); + this.getQuestionControl().at(0)['controls'].relation_entered.clearValidators(); + this.getQuestionControl().at(0)['controls'].relation_to.clearValidators(); + this.getQuestionControl().at(0)['controls'].person_met_entered_pic.clearValidators() + // return false + returnVal = false + } + this.getQuestionControl().at(0)['controls'].person_met_entered.updateValueAndValidity(); + this.getQuestionControl().at(0)['controls'].designation_entered.updateValueAndValidity(); + this.getQuestionControl().at(0)['controls'].relation_to.updateValueAndValidity(); + this.getQuestionControl().at(0)['controls'].relation_entered.updateValueAndValidity(); + this.getQuestionControl().at(0)['controls'].person_met_entered_pic.updateValueAndValidity(); + // console.log(returnVal) + return returnVal + } + // debugger; +} + +setValidationForRemarks(value_neighbourhood_status) { + let control= this.getQuestionControl().at(3)['controls']['neighbour_reference_remark'] + console.log(value_neighbourhood_status,control) + if(value_neighbourhood_status == 'Could not verify' || value_neighbourhood_status == 'Negative') { + control.setValidators(Validators.required) + } + else { + control.clearValidators() + } + control.updateValueAndValidity(); +} +checkSpecifyField() { + let field=this.getBusinessInfoControls().at(1)['controls']['business_is_pd_visited_yes'].value +// console.log(field); + if(field && field.filter(vv=>vv == 'Others (Please specify)').length > 0) { + return true + } + return false +} +getAddressTypeNameById(id) { + if(this.addressTypes.length > 0) { + return this.addressTypes.filter(vv=>vv.address_type_id == id)[0].address_type + } + return 'Workplace' +} +dynamicOnChangeValidations(choosed_value,controls_arr,value_compare) { + console.log("D",choosed_value,value_compare,value_compare == choosed_value) + if(controls_arr.length && controls_arr.length >0) { + controls_arr.forEach(vv=>{ + if(choosed_value == value_compare) { + vv.setValidators(Validators.required); + } + else{ + vv.clearValidators(); + } + vv.updateValueAndValidity() +}) + } +} +completePDAlert() { + + return new Promise(reject=>{ + this.toastProvider.setAlert('Complete Discussion','Please confirm you are completing the Discussion?').then(data=>{ + if(data==false){ + reject() + } + else{ + this.completePD('COMPLETED') + } + }) + }) + +} + + completePD(status:string) + { + let params = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':"25"} + // this.quesService.retiverForm(params).subscribe(form_check=>{ + // if(form_check && form_check['dataStatus'] == false) { + // this.toastProvider.setAlertwithOKButton("Unable to complete the PD","Please complete the form and try again !!"); + // return; + // } + + //alert.present(); + let users = localStorage.getItem('pd_user_details') + users=JSON.parse(users).userid + this.gpsService.getGeoTag().then(geoCords=>{ + let data = {'pd_id':this.pdDetails.pd_id,'vendor_status':status,'fk_updatedby':users,'updatedon':currentdate,'random_string':this.pdDetails.random_string,link:geoCords}; + + this.pdTriggerService.updatepdStatus(data).subscribe(res=> + { + let updateStatus:any = res; + if(updateStatus.dataStatus == true ) + { + if(updateStatus.status == 200) { + this.toastProvider.pdTriggerappmessage("Completed Successfully !!!"); + // this.getNewpdupdate(); + setTimeout(()=>{ + this.navCtrl.pop() + },3000) + } + else if(updateStatus.status == 304) { + let msg = updateStatus.hasOwnProperty('msg') && updateStatus.msg ? updateStatus.msg : "Form not filled yet. Please do this first !!" + this.toastProvider.pdTriggerappmessage(msg); + } + }else + { + } + + }) + },err=>{ + console.log("Problem while getting geo location.",err) + alert("Problem getting geolocation. Make sure the location is turned on") + }) +// }) + +} + + +ngOnDestroy() { + console.log("Destroy function called"); +} +} diff --git a/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.html b/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.html new file mode 100755 index 0000000..6f26d78 --- /dev/null +++ b/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.html @@ -0,0 +1,44 @@ + + + +
Documents to be photographed/scanned
+
+
+ +
+ + + +
+ {{item.value.placeholder}}
+
+ Yes       + No +
+

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

+

Required

+
+
+ + + + + Required + +
+
+ +
+
diff --git a/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.scss b/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.scss new file mode 100755 index 0000000..e69de29 diff --git a/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.spec.ts b/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.spec.ts new file mode 100755 index 0000000..dfe84a7 --- /dev/null +++ b/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { DynamicDocsFormComponent } from './dynamic-docs-form.component'; + +describe('DynamicDocsFormComponent', () => { + let component: DynamicDocsFormComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ DynamicDocsFormComponent ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(DynamicDocsFormComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.ts b/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.ts new file mode 100755 index 0000000..2eb546e --- /dev/null +++ b/src/app/pages/pd/pd-questions/dynamic-docs-form/dynamic-docs-form.component.ts @@ -0,0 +1,83 @@ +import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core'; +import { FormGroup, FormArray, FormControl, Validators, FormBuilder } from '@angular/forms'; + +@Component({ + selector: 'app-dynamic-docs-form', + templateUrl: './dynamic-docs-form.component.html', + styleUrls: ['./dynamic-docs-form.component.scss'], +}) +export class DynamicDocsFormComponent implements OnInit { +@Input() docs_array_value:any; +@Input() form_group:FormGroup; +@Output() eventCapturePic = new EventEmitter(); + camera_btn: any =[]; + @Input() doc_answers:any + constructor(private fb:FormBuilder) { + } + + ngOnInit() { + console.log("child >>>",this.docs_array_value,this.form_group,this.doc_answers) + // this.docs_array_value=res['records'].docs_to_be_collected + if(this.docs_array_value.length !=0){ + // this.docsCollectedForm.addControl('docs_to_be_sighted', this.fb.array([])) + let control:any=this.form_group.controls['docs_to_be_sighted'] + this.docs_array_value.forEach((data,index)=>{ + control.push(this.createDocsArray(data)) + control.controls[index].addControl(data.pd_doc_to_be_collect_id,new FormControl('',Validators.required)) + }) + console.log(this.form_group); + } + } + ngOnChanges() { + console.log(this.doc_answers); + // debugger; + setTimeout(()=>{ + console.log(this.doc_answers); + if(this.doc_answers != null) { + if(this.doc_answers.docs_to_be_sighted != null && this.doc_answers.docs_to_be_sighted.length > 0){ + this.doc_answers.docs_to_be_sighted.forEach((doc_value,index)=>{ + if(doc_value.hasOwnProperty('img')){ + this.docs_change_fun(index,'yes') + } + else if(doc_value.hasOwnProperty('reason')){ + this.docs_change_fun(index,'no'); + } + }) + console.log(this.form_group,this.form_group.get('docs_to_be_sighted')) + this.form_group.get('docs_to_be_sighted').patchValue(this.doc_answers.docs_to_be_sighted) + } +} +},1000) + } + createDocsArray(data){ + console.log(data); + return this.fb.group({ + control_name:[data.pd_doc_to_be_collect_id], + placeholder:[data.doc_name], + + }) + } + docs_change_fun(index,value){ + console.log(index,value); + let control:any=this.form_group.controls['docs_to_be_sighted'] + if(value == 'yes'){ + this.camera_btn[index]=true + control.controls[index].removeControl('reason') + control.controls[index].addControl('img',new FormControl('',Validators.required)) + control.controls[index].addControl('is_new',new FormControl('',Validators.required)) + } + else if(value == 'no'){ + + this.camera_btn[index]=false + control.controls[index].removeControl('img') + control.controls[index].removeControl('is_new') + control.controls[index].addControl('reason',new FormControl('',Validators.required)); + } + + } + capture(index,item_obj) { + item_obj.controls['is_new'].setValue(1); + this.eventCapturePic.emit({controls:item_obj.controls['img'],img_name:item_obj.value.placeholder,form_id:'24'}) + } + +} diff --git a/src/app/pages/pd/pd-questions/employer-info/employer-info.component.html b/src/app/pages/pd/pd-questions/employer-info/employer-info.component.html new file mode 100644 index 0000000..5000e0d --- /dev/null +++ b/src/app/pages/pd/pd-questions/employer-info/employer-info.component.html @@ -0,0 +1,1168 @@ + + + + + + FI Questions + + + + +
+ + + General Section +
+ + + Applicants + + + Applicant Met + + + + + + {{applicant.value.applicant_name}} + + + + +
+ +        Met + Not Met + + Required +
+

+
+ + + + + + + + + + * +
+ Selfie of the Person Met + Required +
+ + + + + + + * +
+ ID Proof of the person + Required +
+
+
+
+
+ +
+ +
+ Is the Employer/ Manager available during FI visit?
+ + Yes + No + + + Required +
+ + +
+ Anyone met during FI visit at initiated address?
+ + Yes + No + + + Required +
+
+ + + + Name of Person Met + + + Person Name required + + + + + + + + + * + + + Capture the Image + + Person Met pic is Required + + +
+
+ + +
+
+ + + + Employment Information + + +
+ + Enter name of Employer/Manager + + + Name Required + + + Designation of the person met + + + Select + {{item.name.split('of')[0]}} + + + Designation required + + + + + + + + + + + + * +
+ Selfie Photograph with Employer/Manager + Required +
+
+ + + + Photo ID card of the Employer/Manager + + Select + {{item}} + + + + Specify Photo ID card of the Employer/Manager + + + + + + + + + + + + + Capture the + Image + + + + + + + + Employer’s/Manager’s Company ID card / Visiting Card provided”? + + Select + Yes + No + + Required + + + + + + + + + + * + + Capture the + Image + + + + + Salary Amount Confirmed from Employer/Manager + + Select + Yes + No + + Required + +
+ + Gross Salary (salary before deduction) + + + + Net Salary (salary after deduction) + + + + + Select + Bank Transfer + Paid in Cash + Both Bank Transfer & Cash + + Required + + + + + {{getEmployer_details['controls']['amount_paid_through_bank'].value | numToWords}} Only + Given Value is + More than Net Salary + Given Value is + Less than Net Salary + + + + + {{getEmployer_details['controls']['amount_paid_in_cash'].value | numToWords}} Only + Given Value is More + than Net Salary + Given Value is Less + than Net Salary + +
+

Date of Salary

+ + + Select + + {{date.date}} + + + Required + + + + + Select + + {{date.date}} + + + Required + + +
+
+ + Why salary amount was not confirmed by employer? + + + + {{item}} + + Required + + + + Please Specify + + + + +
+ +
+
+ + Year + + Higer than business + vintage + Year Required + + + + Month + + Higer than business + vintage + +
+
+ +
+ + + + + + +
+ + +
+ +
+ +
+ + Documents Sighted of applicant employment During FI + +
+ + + + +
+ Salary register
+ + Yes + No + + Salary register Required + +
+
+ + + + + + + + * + + Capture the + Image + Required + +
+ + + + +
+ Attendance Register
+ + Yes + No + + Attendance register + Required +
+
+ + + + + + + + * + + Capture the + Image + Required + +
+ + + + +
+ Cash voucher
+ + Yes + No + + Cash Voucher Required + +
+
+ + + + + + + + * + + Capture the + Image + Required + +
+ + + + +
+ Salary Certificate
+ + Yes + No + + Salary Certificate + Required +
+
+ + + + + + + + * + + Capture the + Image + Required + +
+ + + + +
+ Salary Slip
+ + Yes + No + + Salary Slip Required + +
+
+ + + + + + + + * + + Capture the + Image + Required + +
+ +
+ Others please specify
+ + Yes + No + + Others please specify + Required +
+ + + + + Specify the Document + + Required + + + + + + + + + + + + Capture the + Image + + + + +
+ + Why Documents are not available? + + + {{item}} + + Required + + + + Specify the reason + + +
+
+ +
+ + +
+
+
+ + + Office Setup Photograph + +
+ + + + + +
+
+ + + Office Photograph {{i+1}} + +
+ + +
+ Add More +
+


+
+ +
+ + +
+
+ + + Name board/Entrance photograph + +
+ + + + + +
+
+ + + Name Board {{i+1}} + +
+ + +
+ Add More +
+


+
+ + +
+ + +
+ +
+ +
+ + Credit Manager Special Requests + + +
+ + + +
+
+ + +
+ + +
+
+ + + + + + Address Information + + + + + + + Address is Required + + + + + + + + + + + Select + {{SL.name}} + + State is Required + + + + + + + + + Select + {{CL.city_name}} + + City is Required + + + + + + + + + + Select + {{PL.pincode}} + + Pincode is Required + +
+ + + + + + + + +
+
+
+
+
+ + + Alternative Address Required + + + + + + + + + + Select + {{SL.name}} + + + + + + + + + + Select + {{CL.city_name}} + + + + + + + + + + + Select + {{PL.pincode}} + + + + + + Pincode Required + + + + + + + Reason Required + + + +
+
+ +
+
+ + + + Select + {{m_addressType.address_type}} + + Address Type is Required + +
+ + + +
+ + + Select + {{m_locality.locality_name}} + + + + Locality is Required + + + + + + + + + + + + + Approach to FI location + + Select + {{data.description}} + + Approach to pd location is Required + + + + + + + + * + Capture the Image + Approach to pd location pic is Required + + + + + + Comment on locality + + Select + {{data.rating | titlecase}} + + + Comment on locality is Required + + + +
+ + +
+ +
+ + + +
+ + + Final Remarks + +
+

Comment on Footfall in the market where the B2C outlet is located…

+ + + Heavy Footfall ( lots of customers in the locality / marketplace ).
+ Medium Footfall ( Medium no of customers in the locality / marketplace ).
+ Low Footfall ( Few customers seen in the locality / marketplace ).
+ +

+
Required
+
+ + + Is there a competetion to the applicant's business in the location + + Select + Yes + No + + Required + + + + + + Required + + + + Any demolition activity seen in the locality by PD officer + + Select + Yes + No + + Required + + + + + + Required + + + Any sealing activity observed in the locality by PD officer + + Select + Yes + No + + Required + + + + + + Required + +
+ + +
+ +
+
+ + + + + Submit + + Final Status of visit + + + Select + Positive + Negative + Could not verify + + Required + + + Comments + + Required + +
+ Neighbourhood check +
+ + Existence of organization/office confirmed by neighbour + + Select + Yes + No + + Required + +
+ + Year + + Higer than business + vintage + Year Required + + + + Month + + Higer than business + vintage + +
+
+
+ + + + +
+
+ + +
+
+ +   Complete +
+
diff --git a/src/app/pages/pd/pd-questions/employer-info/employer-info.component.scss b/src/app/pages/pd/pd-questions/employer-info/employer-info.component.scss new file mode 100644 index 0000000..1c48b44 --- /dev/null +++ b/src/app/pages/pd/pd-questions/employer-info/employer-info.component.scss @@ -0,0 +1,190 @@ + + hr{ + width: 100%; + border-bottom: 2px solid lightcoral; + } + + .mat-stepper-vertical { + // margin-top: 8px; + margin-left:-13px; + // color:green; + background:#ffffffc9; + } + ion-content, .mat-stepper-vertical{ + --background: #ffffffc9; + } + .mat-form-field { + // margin-top: 16px; + width: 100%; + } + .mat-button, .mat-raised-button{ + background-color: #e24533; + color: white; + +} +.mat-stroked-button { + color: #e24533; + margin-right: 10px +} +.mat-button-div{ + float: right; + margin-top: 5%; + margin-bottom: 2%; +} +.mat-radio-group > .mat-radio-button,span { + margin: 10px; +} + + +::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb { + background-color: blue; /*replace with your color*/ +} + +::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar { + background-color: skyblue; /*replace with your color*/ +} + +::ng-deep .mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{ + border-color:rgb(66, 134, 244); +} + +::ng-deep .mat-radio-button.mat-accent .mat-radio-inner-circle{ + color:rgb(66, 134, 244); + background-color:rgb(66, 134, 244) ; +} + +.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element { + background-color:rgb(255, 37, 37,.26); +} + +// ::ng-deep .mat-select-panel mat-option.mat-option { +// height: unset; +// } + +// ::ng-deep .mat-option-text.mat-option-text { +// white-space: normal; +// } + +// input-placeholder{ +// margin:10px; +// } +// mat-select{ + +// margin : 5px 0; +// } + +// .mat-select-panel mat-option.mat-option { +// margin: 1rem 0; +// overflow: visible; +// line-height: initial; +// word-wrap: break-word; +// white-space: pre-wrap; +// } +input{ + // width: 100px; + // border-radius: 4px; + // border-color: gray; + // font-size: 12px; + height: 28px; + +} +.mat-select-panel mat-option.mat-option { + margin: 1rem 0; + overflow: visible; + line-height: initial; + word-wrap: break-word; + white-space: pre-wrap; + } + // .mat-option, +.largeMatOption{ + margin: 1rem 0; + overflow: visible; + line-height: initial !important; + word-wrap: break-word; + white-space: pre-wrap; +} +// .mat-option i, + .largeMatOption i{ + display: block; + font-size: 1.5rem; + opacity: 0.6; + margin-left: 0.5rem; + +} + input-placeholder{ + margin:10px; + } + mat-select{ + + margin : 5px 0; +} +::ng-deep .mat-form-field-appearance-fill +{ + .mat-form-field-label { + white-space: pre-wrap; +} +.mat-form-field-label-wrapper { + top:-1.5em; +} +} +// ::ng-deep +ion-spinner { + top:10px; +} +::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline { + .mat-form-field-outline-gap { + width: 100% !important; + } + color: green; +} +@-webkit-keyframes highlight-fade { + 0% { + background: orange; + } + 100% { + background: white; + } +} +@-moz-keyframes highlight-fade { + 0% { + background: orange; + } + 100% { + background: white; + } +} +@-ms-keyframes highlight-fade { + 0% { + background: orange; + } + 100% { + background: white; + } +} +@keyframes highlight-fade { + 0% { + background: orange; + } + 100% { + background: white; + } +} +.field_highlight { + -webkit-animation: highlight-fade 4s ease-out; + -moz-animation: highlight-fade 4s ease-out; + -o-animation: highlight-fade 4s ease-out; + animation: highlight-fade 4s ease-out; + // background: blue; +} +.mat-radio-margin { + margin-top: 15px; +} +::ng-deep .mat-step-header .mat-step-label.mat-step-label-active { + color: rgba(0,0,0,.87); + white-space: pre-wrap; + font-weight: bold; + font-size: 16px; +} +.mat-error { + font-size: 13px; +} \ No newline at end of file diff --git a/src/app/pages/pd/pd-questions/employer-info/employer-info.component.spec.ts b/src/app/pages/pd/pd-questions/employer-info/employer-info.component.spec.ts new file mode 100644 index 0000000..b244a90 --- /dev/null +++ b/src/app/pages/pd/pd-questions/employer-info/employer-info.component.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { EmployerInfoComponent } from './employer-info.component'; + +describe('EmployerInfoComponent', () => { + let component: EmployerInfoComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EmployerInfoComponent ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(EmployerInfoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/pages/pd/pd-questions/employer-info/employer-info.component.ts b/src/app/pages/pd/pd-questions/employer-info/employer-info.component.ts new file mode 100644 index 0000000..075463e --- /dev/null +++ b/src/app/pages/pd/pd-questions/employer-info/employer-info.component.ts @@ -0,0 +1,1946 @@ +import { Component, OnInit, Input, ViewChild, ElementRef, ChangeDetectorRef } from '@angular/core'; +import { FormGroup, FormBuilder, FormControl, Validators, FormArray } from '@angular/forms'; +import { ReplaySubject, Subject } from 'rxjs'; +import { QuestionCategoryProvider } from 'src/app/services/question-category/question-category'; +import { CameraProvider } from 'src/app/services/common-provider/camera'; +import { ActivatedRoute, Router } from '@angular/router'; +import { ToastProvider } from 'src/app/services/common-provider/toast'; +import { AwsServiceProvider } from 'src/app/services/aws-service/aws-service'; +import { NavController } from '@ionic/angular'; +import { LoadingProvider } from 'src/app/services/common-provider/loading'; +import { ConstantsProvider } from 'src/app/services/constants/constants'; +import { DatePipe } from '@angular/common'; +import { searchValue } from '../search'; +import { MatStepper } from '@angular/material'; +import { takeUntil } from 'rxjs/operators'; +import { GpsService } from 'src/app/services/common-provider/gps.service'; +import { PdtriggerProvider } from 'src/app/services/pdtrigger/pdtrigger'; + +const currentdate = new Date().toJSON().slice(0,19); +@Component({ + selector: 'app-employer-info', + templateUrl: './employer-info.component.html', + styleUrls: ['./employer-info.component.scss'], +}) +export class EmployerInfoComponent implements OnInit { + raw_stepper_info = [{ + form_name:'General Section', + form_id:18, + stepper_index:0, + }, + // { + // form_name:'Employer information', + // form_id:"12", + // stepper_index:1 + // }, + { + form_name:'Credit Manager Queries', + form_id:24, + stepper_index:1, + is_dynamic:true + }, + { + form_name:'Address Information', + form_id:5, + stepper_index:2, + is_dynamic:true + },{ + form_name:'Final Remarks', + form_id:20, + stepper_index:3, + is_dynamic:true + },{ + form_name:'Submit', + form_id:'COMMENTS', + stepper_index:3, + is_dynamic:true + },] + stepperInfo:any = [] + + // public person_met_entered:FormControl= new FormControl('') + // public designation_entered:FormControl= new FormControl('') + // public relation_entered:FormControl= new FormControl('') + // public relation_to:FormControl= new FormControl('' + + + employerForm: FormGroup; + matExpanded:number = 0; + isDisplay:any = []; + isDisplay2:any = []; + isOrganisationOwner: any = []; + photoIdCardList:any=[ + "Aadhaar card", "Electoral Photo Identity Card (EPIC) card", "PAN card", "Driving license" , "Not Provided","Others" + ] + docNotAvailList:any=[ + "Documents were not shared by Employer", "Documents are not issued by Employer", "Documents were not available", "Employer was not available", "Others (please specify)" + ] + salAmountNotConfirmList=["Employer doesn’t know", "Employer was not co-operative", "Others Please Specify"] + public dateonly: any = [{date:1,isdisabled:false},{date:2,isdisabled:false},{date:3,isdisabled:false},{date:4,isdisabled:false},{date:5,isdisabled:false},{date:6,isdisabled:false},{date:7,isdisabled:false},{date:8,isdisabled:false},{date:9,isdisabled:false},{date:10,isdisabled:false},{date:11,isdisabled:false},{date:12,isdisabled:false},{date:13,isdisabled:false},{date:14,isdisabled:false},{date:15,isdisabled:false},{date:16,isdisabled:false},{date:17,isdisabled:false},{date:18,isdisabled:false},{date:19,isdisabled:false},{date:20,isdisabled:false},{date:21,isdisabled:false},{date:22,isdisabled:false},{date:23,isdisabled:false},{date:24,isdisabled:false},{date:25,isdisabled:false},{date:26,isdisabled:false},{date:27,isdisabled:false},{date:28,isdisabled:false},{date:29,isdisabled:false},{date:30,isdisabled:false},{date:31,isdisabled:false}]; + public todate: any[] = this.dateonly; + neighbour_status_list:any=[{id:'',name:'Select'},{id:'Positive',name:'Positive'},{id:'Negative',name:'Negative'},{id:'Could not verify',name:'Could not verify'}] + pdlocation: any = []; + cmtlocality: any = []; + pdDetails: any = {pd_id:"1725"}; + // FormId: any; + existCompanyList: any = []; + mergeCompanyApplicant: any=[]; + applicants: any=[]; + currentDate: any; + pipe: any = new DatePipe('en-US'); + users: string; + spinner_access:boolean = false; + docs_tobe_collect: any = []; + creditManagerAnswer: any = null; + addressesList: any; + cityData: any=[]; + search: any; + pincodeData: any=[]; + cityDataValue: any=[]; + pincodeDataValue: any=[]; + alertnativeCityData: any=[]; + alertnativePincodeData: any=[]; + stateData: any =[]; + protected _onDestroy = new Subject(); + public filteredCity: ReplaySubject = new ReplaySubject(1); + public filteredState:ReplaySubject=new ReplaySubject(1) + addressTypes: any =[]; + locality: any =[]; + uomData: any =[]; + placeholderName: string = ''; + companyRelationshipList: any = []; + relationshipList: any = []; + customer_seg_abbr: any; + generalExistBusinessYear: number; + generalExistBusinessMonth: number; + dynamicStepperHeadingForEmp: string; + is_complete_btn_enable: String= '0'; + get questions() { return this.employerForm.get('questions');} + get getEmployer_details() {return this.questions.get([2]).get('employer_details')} + get getDocsSightedGroup() {return this.questions.get([7]).get('docs_sighted')} + + employerform_pdinfo:any; + + @ViewChild('stepper',{static:false}) myStepper: MatStepper; + @ViewChild('last',{static:true}) form_last_element:ElementRef + + public designationFilterCtrl:FormControl = new FormControl(); + public relationFilterCtrl:FormControl = new FormControl(); + public filteredcompanyRelationshipList:ReplaySubject = new ReplaySubject(1); + public filteredrelationshipList:ReplaySubject = new ReplaySubject(1); + constructor(private _formBuilder:FormBuilder,private quesService:QuestionCategoryProvider, + private cameraProvider:CameraProvider,private actRoute:ActivatedRoute,private router:Router, + private toastProvider:ToastProvider,private _awsService:AwsServiceProvider,private navCtrl:NavController, + private loadingProvider:LoadingProvider,private gpsService:GpsService,private pdTriggerService:PdtriggerProvider, + private changeDetRef: ChangeDetectorRef) { + this.actRoute.queryParams.subscribe(p=>{ + if(this.router.getCurrentNavigation().extras.state.pdDetails){ + this.pdDetails= this.router.getCurrentNavigation().extras.state.pdDetails + // this.employerform_pdinfo = this.pdDetails + this.docs_tobe_collect = this.router.getCurrentNavigation().extras.state.docs_collected + // this.questionDetails=this.router.getCurrentNavigation().extras.state.questionDetails + // this.FormId=this.router.getCurrentNavigation().extras.state.FormId + this.applicants = this.pdDetails.applicat_details; + this.customer_seg_abbr = this.pdDetails.customer_segment_abbr + console.log("constr",this.pdDetails,this.docs_tobe_collect) + if(this.pdDetails.lender_short_name == 'CLIX' || this.pdDetails.lender_short_name == 'MWISE' || this.pdDetails.prod_catagory == 'LAEP') + { + let Index = this.raw_stepper_info.findIndex(vv=>vv.form_id == 'COMMENTS') + this.raw_stepper_info[Index].stepper_index+=1 + } + if(this.docs_tobe_collect == null || this.docs_tobe_collect == undefined || this.docs_tobe_collect.length == 0) { + // this.stepperInfo + for(let value of this.raw_stepper_info) { + if(value.is_dynamic) { + value.stepper_index-=1 + } + } + } + } + }) + this.users = this._awsService.getlocale() + this.generalExistBusinessYear=100; + this.generalExistBusinessMonth=12; + } + ngAfterViewChecked() { + this.changeDetRef.detectChanges(); + } + + + ngOnInit() { + this.loadingProvider.dataLoader() + this.employerForm=this._formBuilder.group({ + questions:this._formBuilder.array([this.addGeneralControls(),this.addAddressControls(), + this.addEmployerInfoForm('Employment Information','12'),this.addNeighbourhoodControls(),this.addFinalRemarksControls(), + this._formBuilder.group({ + final_comments:['',Validators.compose([Validators.required])], + final_visit_status:['',Validators.compose([Validators.required])], + company_existence_neighbour_confirmed:['',Validators.required], + company_existence_years:[''], + company_existence_months:[''], + form_id:["COMMENTS"], + form_name:["Comments"] + }), this.addCreditManagerQueries(),this.addEmployerInfoForm('Documents Sighted','12.1'),this.addEmployerInfoForm('Office Setup Photographs','12.2'),this.addEmployerInfoForm('Name Board Photographs','12.3')]) + + }) + + console.log("Current customer segment",this.customer_seg_abbr); + // console.log(this.employerForm); + + console.log(this.employerForm.value) + this.getMasters(); + this.currentDate = this.pipe.transform(new Date(), 'yyyy-MM-dd hh:mm:ss'); + this.addGeneralIndividualsGroup() + this.getFormDatas() + this.filterList() + console.log("Form",this.employerForm.value) + } + + filterList() { + this.relationFilterCtrl.valueChanges.pipe().subscribe(()=>{ + this.applyFilter(this.relationFilterCtrl.value,this.filteredrelationshipList,this.relationshipList,'name') + }) + this.designationFilterCtrl.valueChanges.pipe().subscribe(()=>{ + this.applyFilter(this.designationFilterCtrl.value,this.filteredcompanyRelationshipList,this.companyRelationshipList,'name') + }) + + } + getInitialAddress(){ + // const control=this.pdQuestionAddress.controls['addresses'] + this.quesService.getAddressDetails(this.pdDetails.pd_id).subscribe(res=>{ + if(res.dataStatus == true){ + this.addressesList = res.records.filter(item => item.isactive == 1 && item.assigned_pd == this.pdDetails.pd_id); + + if(this.addressesList.length > 0){ + this.addressesList.forEach((datas,index)=>{ + this.getCityAndPincodeDetails(datas.fk_state,index,1) + + let obj ={ + 'address': datas.addressline1, + 'address_type': '', + 'address_type_others': '', + 'state': datas.fk_state, + 'city': datas.fk_city, + 'pincode':datas.pincode_id, + 'pd_address_id': datas.pd_address_id, + 'pincode_others': datas.other_pincode, + 'locality': '', + 'locality_others': '', + // 'locality_mixuse':'', + 'pd_location': '', + 'comment_locality': '', + 'estimated_area': '', + 'uom': '', + 'uom_others': '' + } + + // control.push(this.initAddress(obj)) + this.getQuestionControl().at(1).patchValue(obj) + console.log(this.employerForm.value) + }) + } + else{ + // control.push(this.initAddress('')) + } + } + else{ + // control.push(this.initAddress('')) + } + }) + } + + getCityAndPincodeDetails(stateID: string,i,flag) { + + //this.pdQuestionAddress.controls['addresses']['controls'].controls + this.quesService.getStateWiseCities(stateID).subscribe(data => { + if (data.status == 200) { + this.cityData[i] = data.records.cities; + this.search=this.cityData[i] + this.pincodeData[i] = data.records.pincode; + + //this.filteredCity.next(this.cityData[i].slice()) + if(flag== 1){ + this.cityDataValue[i]=this.cityData[i].slice() + // this.pincodeData[i] = data.records.pincode; + this.pincodeDataValue[i]=this.pincodeData[i].slice() + } + else if(flag == 2){ + this.alertnativeCityData[i]=this.cityData[i].slice() + this.alertnativePincodeData[i]=this.pincodeData[i].slice() + } + } + //FOR PINCODE FREE TEXT + // let pin + // if(pincode != ''){ + // if(pincode != 1){ + // this.pincodeValue[i]=this.pincodeData[i].filter(res=>res.pincode_id == pincode).map(val=>val.pincode)[0] + // //this.pincodeValue[i]=[].concat.apply([],this.pincodeValue[i]) + + + // } + // } + }); +} + + getMasters() { + this.quesService.getcommondrop('PDLOCATIONAPPROACH').subscribe(res=> + { + this.pdlocation = res; + if(this.pdlocation.dataStatus == true) + { + this.pdlocation = this.pdlocation.records.filter(loca=>loca.isactive ==1); + } + }) + this.quesService.getcommondrop('COMMENTSONLOCALITY').subscribe(res=> + { + this.cmtlocality = res; + if(this.cmtlocality.dataStatus ==true) + { + this.cmtlocality = this.cmtlocality.records.filter(loc=>loc.isactive ==1); + } + }); + this.quesService.getCompaniesListsForBusiness(this.pdDetails.pd_id).subscribe(res=>{ + if(res.dataStatus==true){ + this.existCompanyList=res.records.filter(val=>val.is_active == true) + console.log(this.existCompanyList) + } + let modifyCompanyList:any=[] + if(this.existCompanyList.length>0){ + modifyCompanyList=this.existCompanyList.map(element=>{ + return {id:element.company_order_id.toString(),name:element.company_name,group_id:1}; + }); + this.mergeCompanyApplicant.push({groupName: 'COMPANIES', groupValues: modifyCompanyList }) + + } + let modifyApplicantList:any=[] + if(this.applicants.length>0){ + modifyApplicantList=this.applicants.map(element=>{ + return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2}; + }) + this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) + + } + console.log("company&Applicant",this.mergeCompanyApplicant) + }) + this.quesService.getcommondrop('STATE').subscribe(res=>{ + this.stateData=res['records'].filter(val=>val.isactive == 1); + this.filteredState.next(this.stateData.slice()) + + }) + this.quesService.getcommondrop('ADDRESSTYPE').subscribe(res=> + { + if(res['dataStatus']==true){ + this.addressTypes = res['records'].filter(add=>add.isactive==1); + // this.cacheObservable.register('addressType',this.addressTypes).subscribe(res=>{ + // this.data$=res.get$ + // }) + } + // this.cacheObservable.loadFromObservable() + }) + this.quesService.getcommondrop('LOCALITY').subscribe(res=> + { + if(res['dataStatus']==true) + { + this.locality = res['records'].filter(loc=>loc.isactive==1); + } + }) + this.quesService.getcommondrop('UOM').subscribe(res=>{ + this.uomData=res['records'].filter(val=>val.isactive == 1 && val.is_land_uom != 0) + }) + this.quesService.getcommondrop('COMPANYRELATIONSHIPS').subscribe(rr=>{ + if(rr['dataStatus']) { + this.companyRelationshipList = rr['records'].filter(vv=>vv.isactive == '1'); + this.filteredcompanyRelationshipList.next(this.companyRelationshipList.slice()) + let temp = [{master_name:'COMPANYRELATIONSHIPS',master_data:this.companyRelationshipList}] + this.employerform_pdinfo = this.pdDetails + this.employerform_pdinfo.masterData= temp; + } + + }) + // this.quesService.getcommondrop('RELATIONSHIPS').subscribe(rr=>{ + // this.relationshipList = rr['records'].filter(vv=>vv.isactive == '1'); + // this.filteredrelationshipList.next(this.relationshipList.slice()) + // }) + } + // ngOnChanges() { + // // console.log("Employer infor form Group",this.form_group,this.getEmployerForm,this.pd_info,this.pd_info['masterData'],this.pd_info.applicants_details); + // if(this.pd_info && this.pd_info.masterData && this.pd_info.masterData.length >0) { + // this.companyRelationshipList = this.pd_info.masterData.filter(v=>v.master_name == "COMPANYRELATIONSHIPS")[0].master_data; + // this.filteredcompanyRelationshipList.next(this.companyRelationshipList.slice()) + + // console.log("Empleo",this.filteredcompanyRelationshipList); + // // debugger; + // } + // } + applyFilter(filtered_text,filter_list,raw_list,obj_name) { + if (!raw_list) { + return; + } + // get the search keyword + let search = filtered_text; + if (!search) { + filter_list.next(raw_list.slice()); + return; + } else { + search = search.toLowerCase(); + } + // filter the banks + filter_list.next( + raw_list.filter(bank => bank[obj_name].toLowerCase().indexOf(search) > -1) + ); + } + ConvertMonthintoYear(e) { + + let how_long_year = this.getEmployer_details['controls'].how_long_year.value; + console.log(how_long_year) + + this.getEmployer_details['controls']['how_long_month'].clearValidators(); + + let converted_month: number = +e%12; + let converted_year: number = e / 12; + + // console.log('e',e%12); + // console.log('e',e); + // console.log('e',e/12); + + if (how_long_year > this.generalExistBusinessYear) { + + this.getEmployer_details['controls']['how_long_year'].setValidators(Validators.compose([Validators.max(this.generalExistBusinessYear)])); + this.getEmployer_details['controls']['how_long_year'].setValue(''); + this.getEmployer_details['controls']['how_long_month'].setValue(''); + } + else { + if (how_long_year == this.generalExistBusinessYear && +converted_month > this.generalExistBusinessMonth) { + + this.getEmployer_details['controls'].controls['how_long_year'].setValidators(Validators.compose([Validators.max(this.generalExistBusinessYear)])); + + this.getEmployer_details['controls'].controls['how_long_month'].setValidators(Validators.compose([Validators.max(this.generalExistBusinessMonth)])); + + } else { + + this.getEmployer_details['controls'].how_long_year.setValue(+how_long_year + +Math.floor(converted_year)); + this.getEmployer_details['controls'].how_long_month.setValue(Math.floor(converted_month)); + + } + } + this.getEmployer_details['controls']['how_long_year'].updateValueAndValidity(); + this.getEmployer_details['controls']['how_long_month'].updateValueAndValidity(); +} +dynamicOnChangeValidations(choosed_value,controls_arr,value_compare) { + console.log(controls_arr) + if(controls_arr.length && controls_arr.length >0) { + controls_arr.forEach(vv=>{ + if(choosed_value == value_compare) { + vv.setValidators(Validators.required); + } + else{ + vv.clearValidators(); + } + vv.updateValueAndValidity() +}) + } +} + +getFormDatas() { +let params = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':"25"} +this.quesService.retiverForm(params).subscribe(result=>{ + // result['dataStatus']=false + if(result && result['dataStatus']) { + this.is_complete_btn_enable = result['records'].is_form_validated + this.generateGroupControls(result['records'].questions) + } + else { + this.getInitialAddress(); + // this.getBusinessDocumentsSighted() + } + this.loadingProvider.dismissLoader() +},err=>{ + console.log("getPDFormDetails Error",err) + this.loadingProvider.dismissLoader(); + this.toastProvider.pdTriggerappmessage("Network Error",'danger'); +}) +// this.quesService.getAllQuesSample().subscribe((result:any)=> { +// console.log("Result",result) +// if(result) { +// // this.generateGroupControls(result.questions) +// } +// }) +} + +generateGroupControls(datas) { +if(datas && datas.length > 0) { + // FOR ADDRESS FORM + let address_index = datas.findIndex(val=>val.form_id == "5") + if(address_index && datas[address_index]) { + if(datas[address_index].hasOwnProperty('state') && datas[address_index].state) { + this.getCityAndPincodeDetails(datas[address_index].state,0,1); + if(datas[address_index].hasOwnProperty('alternative_addresses') && datas[address_index].alternative_addresses && datas[address_index].alternative_addresses[0].alternative_state) { + this.getCityAndPincodeDetails(datas[address_index].alternative_addresses[0].alternative_state,0,2); + } + } + if(datas[address_index].hasOwnProperty('address_type') && datas[address_index].address_type) { + if(datas[address_index].address_type != 1) { + let selectedAddressType = this.addressTypes.filter(element => element.address_type_id == datas[address_index].address_type)[0]; + if(selectedAddressType != undefined && selectedAddressType.hasOwnProperty('address_type')){ + this.selectedAddressType(selectedAddressType.address_type); + } + } + else { + this.selectedAddressType(datas[address_index].address_type_others); + } + } + + + + } + + // FOR CREDIT MANAGER + let crdmngr_index = datas.findIndex(val=>val.form_id == "24") + if(crdmngr_index) { + // if(group_obj.form_id == "24" && group_obj.hasOwnProperty('docs_to_be_sighted') && group_obj.docs_to_be_sighted + // && this.docs_tobe_collect != null && this.docs_tobe_collect != undefined && this.docs_tobe_collect.length > 0) { + this.creditManagerAnswer = datas[crdmngr_index] + // } + } + + + // // FOR NEIGHBOURHOOD GROUP GENERATION + // let neighbour_group_index = datas.findIndex(val=>val.form_id == "19") + // if(neighbour_group_index) { + // this.toggleVisibility(datas[neighbour_group_index].neighbourhood_list[0].did_not_know_the_business_operation,0,1) + // this.toggleVisibility(datas[neighbour_group_index].neighbourhood_list[0].did_not_know_the_owner,0,2) + // for(let i=1; i < datas[neighbour_group_index].neighbourhood_list.length ; i++) { + // // datas[neighbour_group_index].neighbourhood_list.forEach(()=>{ + // let neighbour_obj= datas[neighbour_group_index].neighbourhood_list[i] + // this.toggleVisibility(neighbour_obj.did_not_know_the_business_operation,i,1) + // this.toggleVisibility(neighbour_obj.did_not_know_the_owner,i,2) + // // }) + // this.addNeighbourhoodGroup() + // } + // } + this.employerForm.get('questions').patchValue(datas); + + setTimeout(()=>{ + // FOR Employer info GROUP + let employer_group_index = datas.findIndex(val=>val.form_id == "12") + console.log(employer_group_index); + if(employer_group_index != -1) { + if(datas[employer_group_index]) { + let group_obj = datas[employer_group_index] + + // For Documents Sighted + if(group_obj.hasOwnProperty('docs_sighted') && group_obj.docs_sighted && this.getQuestionControl().at(7)) { + datas.push({docs_sighted:group_obj.docs_sighted}) + } + else { + datas.push({dummy:1}) + } + if(group_obj.hasOwnProperty('office_photographs') && group_obj.office_photographs && this.getQuestionControl().at(8)) { + // datas[8].office_photographs = group_obj.office_photograph + datas.push({office_photographs:group_obj.office_photographs}) + group_obj.office_photographs.forEach(()=>{ + this.addMoreImage('office_photographs','',8) + }) + } + else { + datas.push({dummy:1}) + } + // name board photo handling + if(group_obj.hasOwnProperty('nameboard_photographs') && group_obj.nameboard_photographs && this.getQuestionControl().at(9)) { + // datas[9].nameboard_photographs = group_obj.nameboard_photographs + datas.push({nameboard_photographs:group_obj.nameboard_photographs}) + group_obj.nameboard_photographs.forEach(()=>{ + this.addMoreImage('nameboard_photographs','',9) + }) + } + else { + datas.push({dummy:1}) + } + // // For Other Documents images + // if(group_obj.form_id == "13" && group_obj.hasOwnProperty('other_documents') && group_obj.other_documents == 'yes') { + // if(group_obj.other_documents_info) { + // group_obj.other_documents_info.forEach(doc=>{ + // this.addOtherDocumentsGroup() + // }) + // } + // } + // // FOR STOCK IMAGES + // if(group_obj.form_id == "11" && group_obj.hasOwnProperty('images') && group_obj.images) { + // group_obj.images.forEach(()=>{ + // this.addMoreStockImage() + // }) + // } + console.log("Modified getFormDatas",datas) + } + } + + this.getQuestionControl().at(2).patchValue(datas[employer_group_index]) + this.getQuestionControl().at(7).patchValue(datas[7]) + this.getQuestionControl().at(8).patchValue(datas[8]) + this.getQuestionControl().at(9).patchValue(datas[9]) + },200) + console.log("final output",this.employerForm.value) +} +} + +// getBusinessDocumentsSighted() { +// this.quesService.getBusinessDocsToVendorForm(this.pdDetails.pd_id).subscribe(res=>{ +// if(res['dataStatus']) { +// let data= res['records']; +// if(data && data.length > 0) { +// let docs_value_arr:any=[] +// data.forEach(rr=>{ +// this.addDocumentsGroup() +// docs_value_arr.push({document_name:rr}); +// }) + +// let temp:any = {documents_sighted: "yes",documents_info:docs_value_arr} +// console.log("Current docs sighted value",docs_value_arr,temp,this.getBusinessInfoControls().at(0)) +// this.getBusinessInfoControls().at(0).patchValue(temp) +// } +// } +// }) +// } + + + + +// START OF FORM CONTROL NAME GROUPS +addGeneralControls() { +return this._formBuilder.group({ + individuals:this._formBuilder.array([]), + form_id:['18'], + form_name:["General Info"], + is_employer_available:['',Validators.required], + is_met_during_visit:[''], + person_met_entered:[''], + // designation_entered:[''], + // relation_entered:[''], + // relation_to:[''], + person_met_entered_pic:[''], + person_met_entered_id_proof:[''] +}) +} +addGeneralIndividualControls(applicant_obj) { +return this._formBuilder.group({ + is_person_met_id_proof:[''], + is_person_met_pic:[''], + is_person_met:['',Validators.required], + pd_co_applicant_id:[applicant_obj.pd_co_applicant_id], + applicant_name:[applicant_obj.applicant_name] +}) +} +addAddressControls() { +return this._formBuilder.group({ + address:['',Validators.compose([Validators.required])], + state:['',Validators.compose([Validators.required])], + stateSearch:[''], + city:['',Validators.compose([Validators.required])], + citySearch:[''], + pincode:['',Validators.compose([Validators.required])], + pinSearch:[''], + alternative_addresses:this._formBuilder.array([ + this._formBuilder.group({ + alternative_address:[''], + alternative_state:[''], + stateSearch:[''], + alternative_city:[''], + citySearch:[''], + alternative_pincode:[''], + pinSearch:[''], + alternative_pincode_others:[''], + reason_for_alternative_address:[''] + }) + ]), + address_type:['',Validators.compose([Validators.required])], + address_type_others:[''], + locality:['',Validators.compose([Validators.required])], + locality_others:[''], + estimated_area:[''], + uom:[''], + uom_others:[''], + is_pd_done_on_initiated_address:[true], + pd_location:['',Validators.compose([Validators.required])], + pd_location_pic:['',Validators.compose([Validators.required])], + comment_locality:['',Validators.compose([Validators.required])], + form_id:['5'], + form_name:["Address Info"], +}) +} +// addBusinessGroupControls() { +// if(this.customer_seg_abbr != 'SAL') { +// return this._formBuilder.group({ +// business_group:this._formBuilder.array([ +// this.addBusinessInfoControls(),this.addBusinessAssetControls(),this.addStockControls(), +// ]), +// form_id:["BUSINESS_GROUP"], +// form_name:["Business Group Info"] +// }) +// } +// else { +// return this._formBuilder.group({ +// form_id:["BUSINESS_GROUP"], +// form_name:["Business Group Info"] +// }) +// } +// } +// addStockControls() { +// return this._formBuilder.group({ +// form_name:"Stock Info", +// form_id:["11"], +// is_stock_photo:['',Validators.required], +// images:this._formBuilder.array([ +// // this._formBuilder.group({ +// // image:["https://lh3.googleusercontent.com/proxy/euOnni6JKoCJKwXq9Hq8c6fkRaxI5SYQVsHUwx_w_Wt_9zGXsABxnFsjRv7_E3Xer35VR1oalGBRKWdlwQPMo9SoDqOrmx9h7zqmAXMG37rcrpaU_jPXMXAdffKjB0M_zy3yQNJRpOKvqUlx2JmvB68r8cDCGbVUQvW8Zk2yoR4I23i4ZM7U"] +// // }), +// // this._formBuilder.group({ +// // image:["https://lh3.googleusercontent.com/proxy/euOnni6JKoCJKwXq9Hq8c6fkRaxI5SYQVsHUwx_w_Wt_9zGXsABxnFsjRv7_E3Xer35VR1oalGBRKWdlwQPMo9SoDqOrmx9h7zqmAXMG37rcrpaU_jPXMXAdffKjB0M_zy3yQNJRpOKvqUlx2JmvB68r8cDCGbVUQvW8Zk2yoR4I23i4ZM7U"] +// // }) +// ]) +// }) +// } +addImageControl() { +return this._formBuilder.group({ + image:[''] +}) +} +addCreditManagerQueries() { +return this._formBuilder.group({ + form_name:"Credit Manager Queries", + form_id:["24"], + docs_to_be_sighted:this._formBuilder.array([]) +}) +} +addEmployerInfoForm(form_name,form_id) { +return this._formBuilder.group({ + form_name:[form_name], + form_id:[form_id], + // employer_details:this.getEmployerDetailsControls(), + // docs_sighted:this.getDocsSightedDetailsControls(), + // office_photographs:this._formBuilder.array([]), + // nameboard_photographs:this._formBuilder.array([]) + // docs_to_be_sighted:this._formBuilder.array([]) +}) +} +// START OF EMPLOYER FORM GROUP +getDocsSightedDetailsControls() { + return this._formBuilder.group({ + sal_reg_seen:['',Validators.compose([Validators.required])], + attendance_seen:['',Validators.compose([Validators.required])], + cash_voucher:['',Validators.compose([Validators.required])], + sal_certificate:['',Validators.required], + sal_slip:['',Validators.required], + other_doc:['',Validators.required], + other_doc_name:[''], + doc_not_available:[''], + doc_not_available_specify:[''], + + other_doc_pic:[''], + sal_reg_seen_pic:[''], + attendance_seen_pic:[''], + cash_voucher_pic:[''], + sal_certificate_pic:[''], + sal_slip_pic:[''], + }) +} +getEmployerDetailsControls() { + return this._formBuilder.group({ + name_person_met:['',Validators.compose([Validators.required])], + designation_person_met:['',Validators.compose([Validators.required])], + // proof image + person_met_pic:['',Validators.compose([Validators.required])], + photo_id_card:[''], + photo_id_others:[''], + photo_id_card_pic:[''], + visiting_card:['',Validators.required], + visiting_card_pic:[''], + // salaray confirmed ? + confirm_salary:['',Validators.required], + gross_monthly_salary:[''], + net_monthly_salary:[''], + sal_amount_was_not_confirmed:[''], + sal_amount_was_not_confirmed_others:[''], + // Mode of net salary + mode_of_getting_salary:[''], + amount_paid_through_bank:[''], + amount_paid_in_cash:[''], + // Date of Salary ques + from_date_the_salary_is_rcv:[''], + to_date_the_salary_is_rcv:[''], + // since how long working with this employer + how_long_year:['',Validators.compose([Validators.required,Validators.max(this.generalExistBusinessYear)])], + how_long_month:['',Validators.compose([Validators.max(12)])] + }) +} +// // END OF EMPLOYER FORM GROUP + +// addBusinessInfoControls() { +// return this._formBuilder.group({ +// officer_total:['',Validators.compose([Validators.required])], +// was_the_company_name_board_sighted:['',Validators.compose([Validators.required])], +// name_board_sighted_pic:['',Validators.compose([Validators.required])], +// documents_sighted:['',Validators.compose([Validators.required])], +// documents_info:this._formBuilder.array([]), +// other_documents:['',Validators.compose([Validators.required])], +// other_documents_info:this._formBuilder.array([]), +// office_photographs:this._formBuilder.array([]), +// form_name:["Business Info"], +// form_id:["13"] +// }) +// } +// addBusinessInfoDocsControls() { +// return this._formBuilder.group({ +// document_name:['',Validators.compose([Validators.required])], +// document_image:['',Validators.compose([Validators.required])] +// }) +// } +// addBusinessInfoOtherDocsControls() { +// return this._formBuilder.group({ +// document:[''], +// document_pic:[''] +// }) +// } +// addBusinessAssetControls() { +// return this._formBuilder.group({ +// business_is_pd_visited:['',Validators.compose([Validators.required])], +// business_is_pd_visited_pic:[''], +// business_is_pd_visited_yes:[''], +// specify_pd_visited:[''], +// business_asset_sight:['',Validators.compose([Validators.required])], +// business_sight_image:this._formBuilder.array([]), +// // business_pd_visited_remark:[''], +// form_name:["Business Assets"], +// form_id:["22"] +// }) +// } + +addNeighbourhoodControls() { +return this._formBuilder.group({ + form_id:["19"], + form_name:["Neighbourhood Details"], + // neighbourhood_list:this._formBuilder.array([this.addNeighbourListControls()]), + // neighbourhood_status:[''], + // neighbour_reference_remark:[''] +}) +} +// addNeighbourListControls() { +// return this._formBuilder.group({ +// neighbourhood_name:[''], +// do_know:[''], +// did_not_know_the_business_operation:[''], +// how_long_do_know_in_year:[''], +// how_long_do_know_in_month:[''], +// organisation_owner:[''], +// other_organisation_owner:[''], +// did_not_know_the_owner:[''], +// }) +// } + +addFinalRemarksControls() { +return this._formBuilder.group({ + form_name:["Final Remarks"], + form_id:["20"], + outlet_location:[''], + is_competition:[''], + demolition_activity:[''], + sealing_activity:[''], + appx_outlet_or_stores:[''], + comment_of_demolition_activity:[''], + comment_of_sealing_activity:[''], + +}) +} +// END OF FORM CONTROL NAME GROUPS + +// START OF GETTING PARTICULAR FORM CONTROLS +// getStockControl() { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let stockCtrl = business_group_ctrl.at(2).get('images') as FormArray +// // console.log("stock",stockCtrl); +// // console.log(this.employerForm.value); +// return stockCtrl.controls +// } + +getPhotoControls(formArrayName,groupIndex) { +let formArray = this.employerForm.get('questions') as FormArray; +// console.log(formArray); +let officeControl = formArray.at(groupIndex).get(formArrayName) as FormArray + // console.log(business_group_ctrl); +// let stockCtrl = business_group_ctrl.at(0).get('office_photographs') as FormArray + // console.log("stock",stockCtrl); +// console.log(this.employerForm.value); +return officeControl.controls +} + +// getBusinessAssetSightImage() { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let stockCtrl = business_group_ctrl.at(1).get('business_sight_image') as FormArray +// // console.log("stock",stockCtrl); +// // console.log(this.employerForm.value); +// return stockCtrl.controls +// } +// getBusinessInfoDocsControl() { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let docsCtrl = business_group_ctrl.at(0).get('documents_info') as FormArray +// // console.log("stock",docsCtrl); +// // console.log(this.employerForm.value); +// return docsCtrl.controls +// } +// getBusinessInfoOtherDocsControl() { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let docsCtrl = business_group_ctrl.at(0).get('other_documents_info') as FormArray +// // console.log("stock",docsCtrl); +// // console.log(this.employerForm.value); +// return docsCtrl.controls +// } +// getBusinessInfoControls() { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// return business_group_ctrl +// } +// getNeibhourControl() { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let neighbourCtrl = formArray.at(3).get('neighbourhood_list') as FormArray +// // console.log(neighbourCtrl); +// return neighbourCtrl.controls +// } +getQuestionControl() { +let formArray = this.employerForm.get('questions') as FormArray; +// console.log(formArray); +return formArray +} +// END OF GETTING PARTICULAR FORM CONTROLS + +//START OF ADD OR REMOVE MORE FORMS OR IMAGES +// addMoreStockImage(form_id?) { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let stockCtrl = business_group_ctrl.at(2).get('images') as FormArray +// // console.log("stock",stockCtrl); +// // stockCtrl.push(this.addStockImageControl()) +// if(form_id) { +// this.capturePic(stockCtrl,'stock_image ',form_id) +// } +// else { +// stockCtrl.push(this.addImageControl()) +// // stockCtrl = stockCtrl.at(stockCtrl.length-1)['controls'].image +// } +// // console.log(this.employerForm.value); +// } +addMoreImage(formArrayName,form_id?,formGroupIndex?) { +let formArray = this.employerForm.get('questions') as FormArray; +// console.log(formArray); +let officeControl = formArray.at(formGroupIndex).get(formArrayName) as FormArray + // console.log(business_group_ctrl); +// let officeControl = business_group_ctrl.at(0).get('office_photographs') as FormArray + // console.log("stock",stockCtrl); + // stockCtrl.push(this.addStockImageControl()) + if(form_id) { + this.capturePic(officeControl,formArrayName,form_id) + } + else { + officeControl.push(this.addImageControl()) + // stockCtrl = stockCtrl.at(stockCtrl.length-1)['controls'].image + } +// console.log(this.employerForm.value); +} +// addMoreBusinessAssetSightImage(form_id?) { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let stockCtrl = business_group_ctrl.at(1).get('business_sight_image') as FormArray +// // console.log("stock",stockCtrl); +// // stockCtrl.push(this.addStockImageControl()) +// if(form_id) { +// this.capturePic(stockCtrl,'business_sight_image ',form_id) +// } +// else { +// stockCtrl.push(this.addImageControl()) +// // stockCtrl = stockCtrl.at(stockCtrl.length-1)['controls'].image +// } +// // console.log(this.employerForm.value); +// } + +addGeneralIndividualsGroup() { +let formArray = this.employerForm.get('questions') as FormArray; +let individualCtrl = formArray.at(0).get('individuals') as FormArray +if(this.applicants.length > 0) +{ + this.applicants.forEach(applicant_obj=>{ + individualCtrl.push(this.addGeneralIndividualControls(applicant_obj)) + }) +} +} + +// addNeighbourhoodGroup() { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let neighbourCtrl = formArray.at(3).get('neighbourhood_list') as FormArray +// // console.log(neighbourCtrl); +// neighbourCtrl.push(this.addNeighbourListControls()) +// this.matExpanded= neighbourCtrl.length-1 +// } + +removeneighbourhoodGroup(index) { +let formArray = this.employerForm.get('questions') as FormArray; +// console.log(formArray); +let neighbourCtrl = formArray.at(3).get('neighbourhood_list') as FormArray +// console.log(neighbourCtrl); +if(neighbourCtrl.length==1) +{ + neighbourCtrl.reset(); +}else{ + neighbourCtrl.removeAt(index); + this.matExpanded = neighbourCtrl.length-1 +} +} +// addDocumentsGroup( ) { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let docsCtrl = business_group_ctrl.at(0).get('documents_info') as FormArray +// docsCtrl.push(this.addBusinessInfoDocsControls()) +// } + +// removeDocumentsGroup(index) { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let docsCtrl = business_group_ctrl.at(0).get('documents_info') as FormArray +// if(docsCtrl.length==1) +// { +// docsCtrl.reset(); +// }else{ +// docsCtrl.removeAt(index); +// } +// } +// addOtherDocumentsGroup( ) { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let docsCtrl = business_group_ctrl.at(0).get('other_documents_info') as FormArray +// docsCtrl.push(this.addBusinessInfoOtherDocsControls()) +// } + +// removeOtherDocumentsGroup(index) { +// let formArray = this.employerForm.get('questions') as FormArray; +// // console.log(formArray); +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// // console.log(business_group_ctrl); +// let docsCtrl = business_group_ctrl.at(0).get('other_documents_info') as FormArray +// if(docsCtrl.length==1) +// { +// docsCtrl.reset(); +// }else{ +// docsCtrl.removeAt(index); +// } +// } +//END OF ADD OR REMOVE MORE FORMS OR IMAGES + +toggleVisibility(e,index,flag){ +let val + +if(flag == 1){ +this.isDisplay[index] = e; +} +else if(flag==2){ + this.isDisplay2[index] = e; +} +} +getOtherOrganisationOwner(value,i) { +//console.log('value',value,'I',i); +let formArray = this.employerForm.get('questions') as FormArray; +// console.log(formArray); +let Ctrls = formArray.at(3).get('neighbourhood_list') as FormArray +// console.log(Ctrls); +//console.log('ParCtrls',Ctrls); +let ChdCtrls:any = Ctrls.controls[i]; +// console.log('ChdCtrls',ChdCtrls); +// return; + + +let Avaliablity = 1; +// console.log('val',value); +if(value.length>0){ +value.forEach(option => { + if(option.id == 0 && option.group_id == 2){ + Avaliablity = option.id; + } +}); +} +if(Avaliablity == 0){ +// console.log('if Avaliablity',Avaliablity); + + ChdCtrls.controls.other_organisation_owner.setValidators([Validators.required]); + this.isOrganisationOwner[i] = true; +}else if(Avaliablity == 1){ +// console.log('else Avaliablity',Avaliablity); +// console.log('esle this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]); +ChdCtrls.controls.other_organisation_owner.setValue(''); +ChdCtrls.controls.other_organisation_owner.clearValidators(); + this.isOrganisationOwner[i] = false; +// console.log('else this.isOrganisationOwner[ParInx]',this.isOrganisationOwner[i]); +} + +ChdCtrls.controls.other_organisation_owner.updateValueAndValidity(); +} + +capturePic(controls,img_name?:String,form_id?) { +console.clear(); +console.log(controls) +// return; +// controls.setValue("pic"); + +// this.cameraProvider.getpicture().then(res => { + this.cameraProvider.showImageDialog().then((res:any)=>{ + console.log("g",res) +if (res != 'error') { + let geoCoordinates = localStorage.getItem('current_coordinates') + // this.cons.getGeoTag().then(geoCoordinates=>{ + this.cameraProvider.addWatermarks(res).then(watermarkedImage => { + console.log("image name",img_name,img_name === 'office_photograph ') + if(img_name == 'nameboard_photographs' || img_name == 'office_photographs') { + console.log("Before") + controls.push(this.addImageControl()) + console.log("after") + img_name = img_name+String(controls.length) + controls = controls.at(controls.length-1)['controls'].image + } + console.log("controls",controls); + controls.setValue(watermarkedImage) + let bucket: any = [] + bucket.push({ 'image': watermarkedImage, 'Name': img_name, 'link': geoCoordinates }); + let records: any = { + 'pd_id': this.pdDetails.pd_id, + 'formid': form_id, + 'images': bucket, + 'company_id': null, + } + // For Business Groups + if(form_id == '11' || form_id == '13' || form_id == '22') { + records.company_id = '1' + } + console.log("params savePDImage", records) + this.quesService.savePDImages(records).subscribe(result => { + if(result['dataStatus']) { + if(img_name == 'Person Met Pic') { + this.sendGeoCords(geoCoordinates) + } + controls.setValue(result['uri']) + } + else { + console.log(result); + controls.setValue("") + this.toastProvider.pdTriggerappmessage("Something went wrong!!",'warning'); + } + },err=>{ + controls.setValue("") + console.log(err) + this.toastProvider.pdTriggerappmessage("Network Error","danger") + }) + }) + } + }) +} +sendGeoCords(location) { +let params = {"pd_id":this.pdDetails.pd_id,"geo_location":location,"comment":"","fk_updatedby":this.users} +this.quesService.renewSatellite(params).subscribe(rr=>{ + +}) +} +compareObjects(o1: any, o2: any) { +if(o1.id == o2.id && o1.group_id == o2.group_id) +return true; +else return false +} + +ConvertMonthintoYearOnNeighbour(itemrow,e,flag){ +if(flag == 2){ + + let year = itemrow.controls.year_relation_applicant.value; + let converted_month : number = e%12; + let converted_year : number = e/12; + itemrow.controls.year_relation_applicant.setValue(+year + +Math.floor(converted_year)); + itemrow.controls.months_relation_applicant.setValue(Math.floor(converted_month)); +} +else if(flag == 1){ + + let year = itemrow.controls.company_existence_years.value; + let converted_month : number = e%12; + let converted_year : number = e/12; + itemrow.controls.company_existence_years.setValue(+year + +Math.floor(converted_year)); + itemrow.controls.company_existence_months.setValue(Math.floor(converted_month)); +} +} +// onDocsSightedChange(value,flag) { +// // 1 - Documents sighted +// // 2 - Other Documents + +// let formArrayName = 'documents_info' +// if(flag != 1) { +// formArrayName = 'other_documents_info' +// } +// if(value == 'yes') { +// if(flag == 1) { +// this.addDocumentsGroup() +// } +// else { +// this.addOtherDocumentsGroup(); +// formArrayName = 'other_documents_info' +// } +// } +// else { + +// let formArray = this.employerForm.get('questions') as FormArray; +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// let docsCtrl = business_group_ctrl.at(0).get(formArrayName) as FormArray +// while(docsCtrl.length !== 0) { +// docsCtrl.removeAt(0) +// } +// } +// } + +saveApplicantInfo(applicant_obj,image_key) { +console.log(applicant_obj); +this.cameraProvider.showImageDialog().then((res:any)=>{ + console.log("g",res) +if (res != 'error') { + let geoCoordinates = localStorage.getItem('current_coordinates') + // this.cons.getGeoTag().then(geoCoordinates=>{ + this.cameraProvider.addWatermarks(res).then(watermarkedImage => { + applicant_obj.controls[image_key].setValue(watermarkedImage); + let params = { + "pd_co_applicant_id":applicant_obj.value.pd_co_applicant_id, + "applicant_name":applicant_obj.value.applicant_name, + "is_person_met":applicant_obj.value.is_person_met, + "fk_pd_id":this.pdDetails.pd_id, + "link":geoCoordinates + } + params[image_key] = applicant_obj.value[image_key] + + this.quesService.saveApplicantImgFromVendorForm(params).subscribe(result=>{ + if(result['dataStatus']) { + this.sendGeoCords(geoCoordinates) + applicant_obj.controls[image_key].setValue(result['uri']); + } + else { + applicant_obj.controls[image_key].setValue(""); + console.log(result); + this.toastProvider.pdTriggerappmessage("Something went wrong!!",'warning'); + } + },err=>{ + applicant_obj.controls[image_key].setValue(""); + console.log(err) + this.toastProvider.pdTriggerappmessage("Network Error","danger") + }) + }) +} +}) +} +public findInvalidControls() { +const invalid = []; +let msg='' +let formArray = this.employerForm.get('questions') as FormArray; +console.log(formArray); +for( const group of formArray['controls']) { + if(group.invalid) { + console.log(group,group.value.form_name); + // debugger; + msg= group.value.form_name+" are not complete" + this.changeDetRef.detectChanges() + let index = this.stepperInfo.findIndex(vv=>vv.form_id == group.value.form_id); + console.log("Index",index,this.myStepper.steps.length,this.myStepper,this.stepperInfo[index]); + if(index != -1) { + msg = this.stepperInfo[index].form_name+" are not complete" + this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index + } + for (const name in group['controls']) { + if (group['controls'][name].invalid) { + invalid.push(name); + let invalidFields = [].slice.call(document.getElementsByClassName('ng-invalid')); + let firstInvalidField; + for(let val in invalidFields){ + if( invalidFields[val].nodeName == 'MAT-FORM-FIELD' || invalidFields[val].nodeName == 'MAT-SELECT' || invalidFields[val].nodeName == 'TEXTAREA' || invalidFields[val].nodeName == 'MAT-RADIO-GROUP'){ //INPUT FOR INPUT FIELD + firstInvalidField=invalidFields[val] + break; + } + } + if(firstInvalidField != undefined){ + setTimeout(()=>{ + firstInvalidField.scrollIntoView({block: "start", inline: "nearest"}) + // firstInvalidField.style.background = 'red' + firstInvalidField.classList.remove('field_highlight') + setTimeout(()=>{ + firstInvalidField.classList.add('field_highlight') + },300) + },500) + // this.myStepper.selectedIndex = 0; + + } + else { + msg = this.stepperInfo[index].form_name+" images are not taken" + } + + console.log("kkdd",group['controls'][name],firstInvalidField) + + // if(typeof(group['controls'][name].value) == 'string') { + // return name+' field is not ' + // } + break + } + } + break; + } +} +// let business_group_ctrl = formArray.at(2).get('business_group') as FormArray +// const controls = this.getQuestionControl().at(1)['controls'] +// for (const name in controls) { +// if (controls[name].invalid) { +// invalid.push(name); +// } +// } +return msg; +} +// public findInvalidControls() { +// const controls = this.quesAnsForm.get('questions')['controls']; +// console.log(controls) +// for (const name in controls) { +// if (controls[name].invalid) { +// let invalidFields = [].slice.call(document.getElementsByClassName('ng-invalid')); +// let firstInvalidField; +// for(let val in invalidFields){ +// if( invalidFields[val].nodeName == 'MAT-FORM-FIELD'){ //INPUT FOR INPUT FIELD +// firstInvalidField=invalidFields[val] +// break; +// } +// } +// if(firstInvalidField != undefined){ +// firstInvalidField.scrollIntoView(true) +// } +// break; +// } +// } +// // return invalid; +// } + +checkingStepperIndex() { + let whole_emp_sections = [{ + form_name:'Employment information', + form_id:"12", + stepper_index:1 + },{ + form_name:'Document Sighted of applicant employment During FI', + form_id:"12.1", + stepper_index:2 + }, + { + form_name:'Officer Setup Photograph', + form_id:"12.2", + stepper_index:3 + }, + { + form_name:'Name Board/Entrance Photograph', + form_id:"12.3", + stepper_index:4 + }] + // FOR ADDING THE STEPPER INDEX DYNAMICALLY + this.stepperInfo = JSON.parse(JSON.stringify(this.raw_stepper_info)) + let count =0 + if(this.getQuestionControl().at(2).get('employer_details')) { + count=4 + this.stepperInfo.push(...whole_emp_sections) + } + else if(this.getQuestionControl().at(7).get('docs_sighted')) { + count=3 + let temp = whole_emp_sections.filter(v=>v.form_id != '12').map(ve=>{return {form_name:ve.form_name,form_id:ve.form_id,stepper_index:ve.stepper_index -=1}}) + this.stepperInfo.push(...temp) + // console.log("asdffffffffff",temp) + // debugger; + // this.stepperInfo.push() + } + else if(this.getQuestionControl().at(8).get('office_photographs')) { + count=2 + let temp = whole_emp_sections.filter(v=>v.form_id != '12' && v.form_id != '12.1').map(ve=>{return {form_name:ve.form_name,form_id:ve.form_id,stepper_index:ve.stepper_index -=2}}) + this.stepperInfo.push(...temp) + } + else if(this.getQuestionControl().at(9).get('nameboard_photographs')) { + let temp = whole_emp_sections.filter(v=>v.form_id != '12' && v.form_id != '12.1' && v.form_id != '12.2').map(ve=>{return {form_name:ve.form_name,form_id:ve.form_id,stepper_index:ve.stepper_index -=3}}) + this.stepperInfo.push(...temp) + count=1 + } + if(count != 0) { + for(let value of this.stepperInfo) { + if(value.is_dynamic) { + value.stepper_index+=count + } + } + this.changeDetRef.detectChanges() + console.log("Modified stepper index value",this.stepperInfo,this.myStepper) + } +} +lessIndex(count,arr_obj){ + if(count != 0) { + for(let value of arr_obj) { + value.stepper_index-=count + } + } +} +onSubmit(flag?) { +if(this.spinner_access) { + this.toastProvider.pdTriggerappmessage("Form processing please wait..."); + return; +} +if(this.employerForm.invalid && flag != 'go_back') { + console.log('form value',this.employerForm.getRawValue()) + this.checkingStepperIndex() + let invalidMsg = "Please Fill all the required fields and capture the image" + let tempMsg = this.findInvalidControls() + if(tempMsg != '') { + invalidMsg =tempMsg + } + this.toastProvider.pdTriggerappmessage(invalidMsg); + return +} + +// return; + +let records= this.employerForm.getRawValue() +// FOR VERFYING THE IMAGE ARE CAPTURED +if(flag != 'go_back') { + + let photCheck=records.questions[8] + + if(photCheck.hasOwnProperty('office_photographs') && photCheck.office_photographs.length <3) { + this.checkingStepperIndex() + let index = this.stepperInfo.findIndex(vv=>vv.form_id == photCheck.form_id); + if(index != -1) { + this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index + } + this.toastProvider.pdTriggerappmessage("Minimum 3 photos required on Office Setup") + return + } + photCheck=records.questions[9] + + if(photCheck.hasOwnProperty('nameboard_photographs') && photCheck.nameboard_photographs.length <1) { + this.checkingStepperIndex() + let index = this.stepperInfo.findIndex(vv=>vv.form_id == photCheck.form_id); + if(index != -1) { + this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index + } + console.log("asdf"); + this.toastProvider.pdTriggerappmessage("Minimum 1 photo required on Name Board") + return + } +} +// FOR MERGING EMPLOYMENT SECTION,DOCS SIGHTED,OFFICE AND NAME BOARD PHOTOGRAPH INTO SINGLE OBJ +if(this.getQuestionControl().at(7).get('docs_sighted')) { + records.questions[2].docs_sighted = records.questions[7].docs_sighted +} +if(this.getQuestionControl().at(8).get('office_photographs')) { + records.questions[2].office_photographs = records.questions[8].office_photographs +} +if(this.getQuestionControl().at(9).get('nameboard_photographs')) { + records.questions[2].nameboard_photographs = records.questions[9].nameboard_photographs +} +records.questions = records.questions.filter(v=>v.form_id != '12.1' && v.form_id != '12.2' && v.form_id != '12.3') + +this.spinner_access = true; +console.log(records); +records.pdid = this.pdDetails.pd_id; +records.formid = "25"; +records.fk_createdby = this.users; +records.is_form_validated = flag == 'go_back' ? '0' : '1' +if(flag == 'go_back') { + this.loadingProvider.pdloader('Partial data save is in progress. Please wait...') +} +return this.quesService.saveForm(records).subscribe(result=>{ + if(result['dataStatus']) { + if(flag != 'go_back') { + this.toastProvider.pdTriggerappmessage("Saved Successfully...",'primary'); + this.is_complete_btn_enable = '1' + this.form_last_element.nativeElement.scrollIntoView(true) + } + else{ + this.toastProvider.pdTriggerappmessage("Partial data saved successfully..",''); + } + this.employerForm.markAsPristine(); + this.employerForm.markAsUntouched(); + // if(flag != 'go_back') { + // setTimeout(()=>{ + // this.navCtrl.pop(); + // },3000) + // } + } + else { + this.toastProvider.pdTriggerappmessage("Something went wrong",'warning'); + + } + this.spinner_access = false + if(flag == 'go_back') + { + this.employerForm.markAsPristine(); + this.employerForm.markAsUntouched(); + this.loadingProvider.dismissLoader(); + this.navCtrl.pop(); + } + // return true +},err=>{ + console.log("Error in savePDFormDetails",err); + this.toastProvider.pdTriggerappmessage("Network Error",'danger'); + this.spinner_access = false + if(flag == 'go_back') + { + this.employerForm.markAsPristine(); + this.employerForm.markAsUntouched(); + this.loadingProvider.dismissLoader(); + this.navCtrl.pop(); + } + // return true +}) +} + +// FOR CHECKING THE UNSAVED CHANGES + +countRowsForTextarea(text){ + + + +if(text !='' && text != undefined){ +if(text.length%100 > 5) +return 5; +else if(text.length%100 <= 3) +return 3; +else return Math.floor(text.length%100); + +} +} +searchFun(control:any,i:number,option,flag){ +if(flag == 1) { +console.log(control,this.getQuestionControl().at(1)); +control = this.getQuestionControl().at(1) +} +if (option == 'city' && flag ==1) { +control.controls['citySearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(() => { + this.SearchCity(control.controls['citySearch'].value, i); + }) +} +if (option == 'state') { + +control.controls['stateSearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(()=>{ + this.searchState(control.controls['stateSearch'].value) + }) +} +if (option == 'pin' && flag ==1) { + +control.controls['pinSearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(()=>{ + this.searchPin(control.controls['pinSearch'].value,i) + }) +} +if (option == 'city' && flag ==2) { +control.controls['citySearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(() => { + this.SearchAlternativeCity(control.controls['citySearch'].value, i); + }) +} +if (option == 'pin' && flag ==2) { + +control.controls['pinSearch'].valueChanges + .pipe(takeUntil(this._onDestroy)) + .subscribe(()=>{ + this.searchAlternativePin(control.controls['pinSearch'].value,i) + }) +} +} +searchPin(val:any,index:number){ +if(!this.pincodeData[index]){ +return +} +let searchValue=val +if(!searchValue){ +this.pincodeDataValue[index]=this.pincodeData[index].slice() +return +}else{ +searchValue=searchValue.toLowerCase() +} +this.pincodeDataValue[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1) +} +SearchCity(val: any, i: number) { +if (!this.cityData[i]) { +return +} +let searchValue = val +if (!searchValue) { +// this.filteredCity.next(this.cityData[i].slice()) +this.cityDataValue[i]=this.cityData[i].slice() +return +} else { +searchValue = searchValue.toLowerCase() +} +this.cityDataValue[i]=this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1) +// this.filteredCity.next( +// this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1) +// ) + +} +searchAlternativePin(val:any,index:number){ +if(!this.pincodeData[index]){ +return +} +let searchValue=val +if(!searchValue){ +this.alertnativePincodeData[index]=this.pincodeData[index].slice() +return +}else{ +searchValue=searchValue.toLowerCase() +} +this.alertnativePincodeData[index]=this.pincodeData[index].filter(value=>value.pincode.toLowerCase().indexOf(searchValue) > -1) +} +SearchAlternativeCity(val: any, i: number) { +if (!this.cityData[i]) { +return +} +let searchValue = val +if (!searchValue) { +// this.filteredCity.next(this.cityData[i].slice()) +this.alertnativeCityData[i]=this.cityData[i].slice() +return +} else { +searchValue = searchValue.toLowerCase() +} +this.alertnativeCityData[i]=this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1) +// this.filteredCity.next( +// this.cityData[i].filter(value => value.city_name.toLowerCase().indexOf(searchValue) > -1) +// ) + +} +searchState(val: any) { + +if (!this.stateData) { +return +} +let searchVal = val +if (!searchVal) { +this.filteredState.next(this.stateData.slice()) +return +} +else { +searchVal = searchVal.toLowerCase() +} +this.filteredState.next( +this.stateData.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1) +) +} +selectedAddressType(e: any) { +this.placeholderName = 'Estimated area of the ' + e; +} + +setValidationForRemarks(value_neighbourhood_status) { +let control= this.getQuestionControl().at(3)['controls']['neighbour_reference_remark'] +console.log(value_neighbourhood_status,control) +if(value_neighbourhood_status == 'Could not verify' || value_neighbourhood_status == 'Negative') { +control.setValidators(Validators.required) +} +else { +control.clearValidators() +} +control.updateValueAndValidity(); +} + +// FOR HANDLING ALL TYPE OF ON CHANGE + checkPartEnable(flag) { + let general_controls = this.getQuestionControl().at(0)['controls'] + let employement_controls: any = this.getQuestionControl().at(2) + let name_board_controls:any = this.getQuestionControl().at(9) + let office_photo_controls:any = this.getQuestionControl().at(8) + let docs_sighted_controls:any = this.getQuestionControl().at(7) + let applicant_arr = this.getQuestionControl().at(0).get('individuals').value + let return_value = '' + switch (flag) { + // FOR PERSON MET ENETERED MANUAL FIELDS + case 1: + if (general_controls.is_met_during_visit.value != 'yes') { + general_controls.person_met_entered.setValue('') + general_controls.person_met_entered_pic.setValue('') + general_controls.person_met_entered.clearValidators(); + general_controls.person_met_entered_pic.clearValidators(); + // console.log("validation removed"); + } + if (general_controls.is_met_during_visit.value == '') { + employement_controls.removeControl('nameboard_photographs') + employement_controls.removeControl('office_photographs') + } + if (general_controls.is_met_during_visit.value === 'yes') { + general_controls.person_met_entered.setValidators(Validators.required); + general_controls.person_met_entered_pic.setValidators(([Validators.required])); + general_controls.person_met_entered_pic.updateValueAndValidity(); + + // FOR ADDING OFFICE PHOTO + // employement_controls.addControl('office_photographs', this._formBuilder.array([])) + office_photo_controls.addControl('office_photographs', this._formBuilder.array([])) + name_board_controls.addControl('nameboard_photographs', this._formBuilder.array([])) + this.dynamicStepperHeadingForEmp = "Office Setup Photographs" + // FOR REMOVING NAME BOARD PHOTO + // name_board_controls.removeControl('nameboard_photographs') + return true + } + else if (general_controls.is_met_during_visit.value == 'no') { + // FOR ADDING NAME BOARD PHOTO + // employement_controls.addControl('nameboard_photographs', this._formBuilder.array([])) + console.log(name_board_controls) + name_board_controls.addControl('nameboard_photographs', this._formBuilder.array([])) + this.dynamicStepperHeadingForEmp = "Name board/Entrance photograph" + // FOR REMOVING OFFICE PHOTO + office_photo_controls.removeControl('office_photographs') + return false + } + + break; + // FOR is_met_during_visit FIELD + case 2: + if (applicant_arr && applicant_arr.length > 0) { + if (applicant_arr.filter(vv => vv.is_person_met == true).length == 0 && general_controls.is_employer_available.value == 'no') { + general_controls.is_met_during_visit.setValidators(Validators.required); + return true + } + else { + general_controls.is_met_during_visit.setValue('') + general_controls.is_met_during_visit.clearValidators(); + return false + } + } + break; + // FOR THE QUESTION WHY NO DOCUMENTS TO BE SIGHTED REASON + case 3: + if (!this.getDocsSightedGroup) { return false } + let ctrl_values = this.getDocsSightedGroup['value'] + if (ctrl_values.sal_reg_seen == 'no' && ctrl_values.attendance_seen == 'no' && ctrl_values.cash_voucher == 'no' && ctrl_values.sal_certificate == 'no' && ctrl_values.sal_slip == 'no' && ctrl_values.other_doc == 'no') { + this.getDocsSightedGroup['controls'].doc_not_available.setValidators(Validators.required); + return true; + } + else { + this.getDocsSightedGroup['controls'].doc_not_available.setValue('') + this.getDocsSightedGroup['controls'].doc_not_available.clearValidators(); + return false + } + break; + // FOR ENABLING EMPLOYMENT INFOMATION SECTIONS + case 4: + if (general_controls.is_employer_available.value == 'yes') { + employement_controls.addControl('employer_details', this.getEmployerDetailsControls()) + docs_sighted_controls.addControl('docs_sighted', this.getDocsSightedDetailsControls()) + name_board_controls.addControl('nameboard_photographs', this._formBuilder.array([])) + office_photo_controls.addControl('office_photographs', this._formBuilder.array([])) + this.dynamicStepperHeadingForEmp = "Employment Information" + return true; + } + else { + employement_controls.removeControl('employer_details') + return false; + } + // FOR ENABLING DOCUMENT SIGHTED + case 5: + // let applicant_arr = this.getQuestionControl().at(0).get('individuals').value + // console.log(applicant_arr) + if (applicant_arr && applicant_arr.length > 0) { + if ((general_controls.is_employer_available.value == 'no' && applicant_arr.filter(vv => vv.is_person_met == true).length != 0) || (general_controls.is_employer_available.value == 'yes')) { + docs_sighted_controls.addControl('docs_sighted', this.getDocsSightedDetailsControls()) + name_board_controls.addControl('nameboard_photographs', this._formBuilder.array([])) + office_photo_controls.addControl('office_photographs', this._formBuilder.array([])) + this.dynamicStepperHeadingForEmp = "Documents Sighted of applicant employment During FI" + return true; + } + else { + docs_sighted_controls.removeControl('docs_sighted') + return false + } + } + return false + break; + case 6: + if (applicant_arr && applicant_arr.length > 0) { + let returnVal = false + // console.log(applicant_arr.filter(vv=>vv.is_person_met === "").length,applicant_arr.length,applicant_arr) + if (applicant_arr.filter(vv => vv.is_person_met === '').length != applicant_arr.length) { + return true + } + else { + return false + } + } + return false + break; + } + this.employerForm.updateValueAndValidity(); + // return return_value + } + + +canDeactivate(){ + // this.timer.unsubscribe(); + // console.log(this.employerForm.dirty) + if(this.employerForm.dirty){ + return this.onSubmit('go_back') +// return this.constant.chekAlertOnLeave().then(res=>{ +// console.log(res) +// return res +// }) + // return true; +} +// else{ + return true +// } +} + +formDate(value){ + // console.log('to',this.todate) + // console.log(value); + // console.log('to length',this.todate.length); + // console.log('index',value-1); + // console.log('this.todate',this.todate[11]); + // console.log('this.todate',this.todate[11].isdisabled); + this.getEmployer_details['controls']['to_date_the_salary_is_rcv'].setValue(''); + this.todate = [{date:1,isdisabled:false},{date:2,isdisabled:false},{date:3,isdisabled:false},{date:4,isdisabled:false},{date:5,isdisabled:false},{date:6,isdisabled:false},{date:7,isdisabled:false},{date:8,isdisabled:false},{date:9,isdisabled:false},{date:10,isdisabled:false},{date:11,isdisabled:false},{date:12,isdisabled:false},{date:13,isdisabled:false},{date:14,isdisabled:false},{date:15,isdisabled:false},{date:16,isdisabled:false},{date:17,isdisabled:false},{date:18,isdisabled:false},{date:19,isdisabled:false},{date:20,isdisabled:false},{date:21,isdisabled:false},{date:22,isdisabled:false},{date:23,isdisabled:false},{date:24,isdisabled:false},{date:25,isdisabled:false},{date:26,isdisabled:false},{date:27,isdisabled:false},{date:28,isdisabled:false},{date:29,isdisabled:false},{date:30,isdisabled:false},{date:31,isdisabled:false}]; + var i ; + + if(value != 0 && value != '') + for(i=0;i<=value-1;i++){ + this.todate[i].isdisabled = true; + if(value == 31){ + this.todate[30].isdisabled = false; + } + } + + } + + ValidateNetSalary(){ + let salary = this.getEmployer_details['controls']['net_monthly_salary'].value; + // console.log('this.employer_details['controls'][amount_paid_in_cash].value',this.getEmployer_details['controls']['amount_paid_in_cash'].value); + + if(salary != ''){ + // let cash_amount = this.getEmployer_details['controls']['amount_paid_in_cash'].value; + let bank_amount = this.getEmployer_details['controls']['amount_paid_through_bank'].value; + + this.getEmployer_details['controls']['amount_paid_through_bank'].setValidators([Validators.max(salary),Validators.min(0)]); + this.getEmployer_details['controls']['amount_paid_through_bank'].updateValueAndValidity(); + let Remainamt = salary-bank_amount + if(Remainamt >= 0 ){ + this.getEmployer_details['controls']['amount_paid_in_cash'].setValue(Remainamt); + this.getEmployer_details['controls']['amount_paid_in_cash'].setValidators([Validators.max(salary-bank_amount),Validators.min(salary-bank_amount)]); + } + else{ + this.getEmployer_details['controls']['amount_paid_in_cash'].setValue('0'); + this.getEmployer_details['controls']['amount_paid_in_cash'].setValidators([Validators.max(0),Validators.min(0)]); + } + this.getEmployer_details['controls']['amount_paid_in_cash'].updateValueAndValidity(); + + } + else{ + this.toastProvider.pdTriggerappmessage('Net Monthly Salary Is Empty.!'); + // this.t.notify('warning', 'Net Monthly Salary Is Empty.!'); + this.getEmployer_details['controls']['amount_paid_in_cash'].setValue(''); + // this.getEmployer_details['controls']['amount_paid_in_cash'].clearValidators(); + this.getEmployer_details['controls']['amount_paid_in_cash'].updateValueAndValidity(); + this.getEmployer_details['controls']['amount_paid_through_bank'].setValue(''); + // this.getEmployer_details['controls']['amount_paid_through_bank'].clearValidators(); + this.getEmployer_details['controls']['amount_paid_through_bank'].updateValueAndValidity(); + return; + } + + + } + checkSpecifyField(value) { + // let field=this.getBusinessInfoControls().at(1)['controls']['business_is_pd_visited_yes'].value + // console.log(field); + if(value && value.filter(vv=>vv.includes('Others')).length > 0) { + return true + } + return false + } + + completePDAlert() { + + return new Promise(reject=>{ + this.toastProvider.setAlert('Complete Discussion','Please confirm you are completing the Discussion?').then(data=>{ + if(data==false){ + reject() + } + else{ + this.completePD('COMPLETED') + } + }) + }) + + } + + completePD(status:string) + { + let params = {'parent_pdid':this.pdDetails.parent_pd_id,'pd_id':this.pdDetails.pd_id,'pd_form_id':"25"} + // this.quesService.retiverForm(params).subscribe(form_check=>{ + // if(form_check && form_check['dataStatus'] == false) { + // this.toastProvider.setAlertwithOKButton("Unable to complete the PD","Please complete the form and try again !!"); + // return; + // } + + //alert.present(); + let users = localStorage.getItem('pd_user_details') + users=JSON.parse(users).userid + this.gpsService.getGeoTag().then(geoCords=>{ + let data = {'pd_id':this.pdDetails.pd_id,'vendor_status':status,'fk_updatedby':users,'updatedon':currentdate,'random_string':this.pdDetails.random_string,link:geoCords}; + + this.pdTriggerService.updatepdStatus(data).subscribe(res=> + { + let updateStatus:any = res; + if(updateStatus.dataStatus == true ) + { + if(updateStatus.status == 200) { + this.toastProvider.pdTriggerappmessage("Completed Successfully !!!"); + // this.getNewpdupdate(); + setTimeout(()=>{ + this.navCtrl.pop() + },3000) + } + else if(updateStatus.status == 304) { + let msg = updateStatus.hasOwnProperty('msg') && updateStatus.msg ? updateStatus.msg : "Form not filled yet. Please do this first !!" + this.toastProvider.pdTriggerappmessage(msg); + } + }else + { + } + + }) + },err=>{ + console.log("Problem while getting geo location.",err) + alert("Problem getting geolocation. Make sure the location is turned on") + }) + // }) + + } + +} diff --git a/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.html b/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.html new file mode 100755 index 0000000..10feb91 --- /dev/null +++ b/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.html @@ -0,0 +1,170 @@ + + + + + + + + {{pageTitle | titlecase}} + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + {{ (category.category_name[0]).slice(0,1) | uppercase}} + + +

{{category.category_name}}

+

{{category.answerd_count}} / {{category.questions_count}} Questions

+
+
+
+
+
+ +
+
+
+ + + +
{{ (tempForm.form_name).slice(0,1) | uppercase }}
+ + +

{{tempForm.form_id != 19 ? tempForm.form_name : 'Neighbourhood Details'}}

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

{{questionCate}}

+
+
+ + + + + + + Complete + + + \ No newline at end of file diff --git a/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.scss b/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.scss new file mode 100755 index 0000000..7456b40 --- /dev/null +++ b/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.scss @@ -0,0 +1,96 @@ +// page-pd-question-category { + +mat-grid-tile { + background: white!important; +} +ion-row{ + width: 100%; + padding: 0px !important; + margin: 0px; +} +.fadeIn { + animation-name: fadeIn; + animation-duration: 15s; + transition: all 0.5s cubic-bezier(.36,-0.64,.34,1.76); +} +@font-face{ + font-family: Roboto; + src: url('../../../../../assets/fonts/Roboto-Bold.ttf')!important; +} +// h1{ +// margin: 2px 0; +// font-size: 1.6rem; +// font-weight: bold!important; +// color:#3272b2; +// } +// .box{ +// box-shadow: 0 5px 20px 0 rgba(0,0,0,.2),0 13px 24px -11px rgba(50, 114, 178, 0.59) !important; +// } +// .mat-card{ +// border-top: 3px solid rgba(50, 114, 178, 0.78); +// padding: 7px 16px !important; +// } + + +mat-grid-tile { + background: white!important; +} +.grid{ + padding:0px; + width:100%; +} + +h1{ + margin: 2px 0; + font-size: 2.2rem !important; + // font-weight: bold!important; +} +.scroll-content,.inner-scroll{ + background-color: #eee !important; + padding:0px !important; + margin:0px !important; +} +.mat-card{ + // border-top: 3px solid rgba(50, 114, 178, 0.78); + padding: 0px !important; + // height: 100%; + // box-shadow: 0 5px 20px 0 rgba(0,0,0,.2), 0 13px 24px -11px rgba(0, 0, 0, 0.2); +} +// *{ +// font-size: 16px; +// } +.mat-card-title{ + margin-bottom: 0px; +} +.list-md{ + margin: 0px; + padding: 0px; +} +.lettericon{ + + background-color: cadetblue; + // padding: 10px 15px 10px 15px; + padding: 15px 20px 15px 20px; + margin-right: 5px; + border-radius: 50%; + color: #fff; +} +.label-md{ + margin: 0px; +} +.item-md h4 { + font-size: 1.7rem; +} +.item-md ion-icon[item-start] + .item-inner{ + margin-left: 0px; +} + +.button-md-primary { + margin-bottom: 0px !important; + height: 50px; + } + .text-style-class{ + font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif; + } +// } + diff --git a/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.ts b/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.ts new file mode 100755 index 0000000..e32a2bc --- /dev/null +++ b/src/app/pages/pd/pd-questions/pd-question-category/pd-question-category.ts @@ -0,0 +1,546 @@ +import { Component, ViewChild } from '@angular/core'; +import { NavController, NavParams,ModalController } from '@ionic/angular'; +import { QuestionCategoryProvider } from '../../../../services/question-category/question-category'; +import { CognitoServiceProvider } from '../../../../services/aws-service/cognito.service'; +// import { PdQuestionPage } from '../pd-question/pd-question'; + +import { ToastProvider } from '../../../../services/common-provider/toast'; +import { AwsServiceProvider } from '../../../../services/aws-service/aws-service'; +import { PdtriggerProvider } from '../../../../services/pdtrigger/pdtrigger'; +// import { PdQuestionAddressPage } from '../pd-question/pd-question-address/pd-question-address'; +// import { PdQuestionEmpInfoPage } from '../pd-question/pd-question-emp-info/pd-question-emp-info'; +// import { PdQuestionCurrentLoansPage } from '../pd-question/pd-question-current-loans/pd-question-current-loans'; +// import { PdQuestionLoansPage } from '../pd-question/pd-question-loans/pd-question-loans'; + +// import { PdQuestionBankingPage } from '../pd-question/pd-question-banking/pd-question-banking'; +// import { PdQuestionFamilyPage } from '../pd-question/pd-question-family/pd-question-family'; +// import { PdQuestionAssestsPage } from '../pd-question/pd-question-assests/pd-question-assests'; +// import { PdQuestionOtherIncomePage } from '../pd-question/pd-question-other-income/pd-question-other-income'; +// import { PdQuestionSupplierInfoPage } from '../pd-question/pd-question-business-group/pd-question-supplier-info/pd-question-supplier-info'; +// import { PdQuestionPersonalInfoPage } from '../pd-question/pd-question-personal-info/pd-question-personal-info'; +// import { PdQuestionStockInfoPage } from '../pd-question/pd-question-business-group/pd-question-stock-info/pd-question-stock-info'; +// import { PdQuestionFinancialInfoPage } from '../pd-question/pd-question-business-group/pd-question-financial-info/pd-question-financial-info'; +// import { PdQuestionClientInfoPage } from '../pd-question/pd-question-business-group/pd-question-client-info/pd-question-client-info'; +// import { PdQuestionAssessedDashPage } from '../pd-question/pd-question-assessed-dash/pd-question-assessed-dash'; +// import { PdQuestionLenderRepresentativePage } from '../pd-question/pd-question-lender-representative/pd-question-lender-representative'; +// import { PdQuestionGeneralInfoPage } from '../pd-question/pd-question-general-info/pd-question-general-info'; +// import { PdQuestionNeighbourHoodPage } from '../pd-question/pd-question-neighbour-hood/pd-question-neighbour-hood'; +// import { PdQuestionFinalRemarkPage } from '../pd-question/pd-question-final-remark/pd-question-final-remark'; +// import { PdQuestionBusinessGroupPage } from '../pd-question/pd-question-business-group/pd-question-business-group' +// import {PdQuestionRentalDashPage} from '../pd-question/pd-question-rental-info/pd-question-rental-dash/pd-question-rental-dash' +// import {FormCompleteCheckModalPage} from '../form-complete-check-modal/form-complete-check-modal' +import {ConstantsProvider} from '../../../../services/constants/constants' +import { StorageProvider } from '../../../../services/storage/storage'; +import { NavigationExtras, ActivatedRoute, Router } from '@angular/router'; +import { FormCompleteCheckModalPage } from '../../form-complete-check-modal/form-complete-check-modal'; +// import { QueriesDocsPage } from '../queries-docs/queries-docs'; + + +/** + * Generated class for the PdQuestionCategoryPage page. + * + * See https://ionicframework.com/docs/components/#navigation for more info on + * Ionic pages and navigation. + */ +const currentdate = new Date().toJSON().slice(0,19).replace('T',' '); +const route_prefix='/pd/pd-questions/' + +@Component({ + selector: 'page-pd-question-category', + templateUrl: 'pd-question-category.html', + styleUrls:['pd-question-category.scss'] +}) +export class PdQuestionCategoryPage { + searchTempForm: any; + searchQuestion: any; + viewchange: boolean; + templateAccess: boolean; + bgColortempForm: any=[]; + bgColorqustCat: any=[]; + dis_forms:any; + // @ViewChild('doughnutCanvas') doughnutCanvas; + pdinfo: any; +questionList:any; +questionCate:any; +questionCateAccess:boolean = null; +questionfinishedList:any =[]; +pddetails:any=[]; +overallqustioncountAccess:boolean = true; +doughnutChart: any; +completedAccess:any; +searchitem:any; + enableAddonPD: boolean=false; + pageTitle:string; + complete_btn:boolean=true; + complete_status : boolean = false; + customer_segment_abbr: any; + split_customer_abbr: any; + pd_completeness_override:string = '0' + + constructor(public navCtrl: NavController, private actRoute:ActivatedRoute,private router:Router,public templateget:QuestionCategoryProvider, + public aws:AwsServiceProvider, public shared:CognitoServiceProvider,public toast:ToastProvider, + public pdstatusprovide:PdtriggerProvider, private modalCtrl:ModalController,private constantProvider:ConstantsProvider,private storage:StorageProvider) { + // this.pddetails = this.navParams.get('pdDetails'); + this.actRoute.queryParams.subscribe(p=>{ + if(this.router.getCurrentNavigation() != null && this.router.getCurrentNavigation().extras.state != undefined){ + console.log(this.router.getCurrentNavigation(),this.router.getCurrentNavigation().extras.state) + if(this.router.getCurrentNavigation().extras.state.pdDetails){ + this.pddetails=this.router.getCurrentNavigation().extras.state.pdDetails + + this.pageTitle=this.pddetails.is_child != '1' ? this.pddetails.applicat_details[0].applicant_name : 'Add On for'+' '+this.pddetails.parent_pd_id + this.customer_segment_abbr = this.pddetails.customer_segment_abbr; + this.split_customer_abbr = this.customer_segment_abbr.split('-') + if(this.split_customer_abbr.length > 0){ + this.split_customer_abbr = this.split_customer_abbr[0]; + console.log(this.split_customer_abbr) + } + let params: any={}; + params.pd_id = this.pddetails.pd_id; + this.pdstatusprovide.getPDCompleteDetails(params).subscribe(result => { + if (result['dataStatus'] === true) { + this.enableAddonPD = result['records'].address_count>0 ? true: false; + console.log("addon",this.enableAddonPD); + } + }); + + this.complete_status = this.pddetails.pd_status == 'COMPLETED' ? true : false; + } +} +}) + this.constantProvider.enableAccuracy().then(res=>{ + console.log("Accuracy from Category Provider",res) + }) + + } + + ionViewWillEnter() + { + this.templateget.salaried_primary_key='' + this.getcategoryList(); + // this.viewCtrl.dismiss(); + } + ionViewWillLeave(){ + // this.storage.clearItem('qc_notes') + } + // doughuntChart() + // { + // this.doughnutChart = new Chart(this.doughnutCanvas.nativeElement, { + + // type: 'doughnut', + // data: { + // // labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"], + // datasets: [{ + // label: '# of Votes', + // data: [12], + // backgroundColor: [ + // // 'rgba(255, 99, 132, 0.2)', + // 'rgba(54, 162, 235, 0.2)', + // // 'rgba(255, 206, 86, 0.2)', + // // 'rgba(75, 192, 192, 0.2)', + // // 'rgba(153, 102, 255, 0.2)', + // // 'rgba(255, 159, 64, 0.2)' + // ], + // hoverBackgroundColor: [ + // "#FF6384", + // "#36A2EB", + // "#FFCE56", + // "#FF6384", + // "#36A2EB", + // "#FFCE56" + // ] + // }] + // } + + // }); + // } + ngOnInit() { + this.shared.refresh(); + //this.doughuntChart(); + console.log('ngOnInit PdQuestionCategoryPage'); + } + + getcategoryList() + { + let j = 1; + console.log("random ",this.pddetails.random_string) + this.templateget.getLoadTemplate(this.pddetails.pd_id,this.pddetails.random_string).subscribe(res=> + { + this.questionCate = res; + if(this.questionCate.dataStatus == true) + { + + this.questionCate = this.questionCate.records; + this.random_ng_past(); + this.complete_btn= this.questionCate.pdmaster_details.pd_status == "ADD_ON_PENDING" ? false : this.questionCate.pdmaster_details.pd_status == "COMPLETED" ? false :true + // if(this.questionCate.question_answers !='' && this.questionCate.template_forms!='') + // { + // this.questionCateAccess = true; + // this.templateAccess = true; + // this.questionCate = this.questionCate; + // this.dis_forms=this.questionCate.template_forms.filter(val=>val.isAnswerable==true ); + // this.searchQuestion = this.questionCate.question_answers; + + // if(this.questionCate.counts.overall_answered_count !=0 && this.questionCate.counts.overall_question_count !=0 && this.questionCate.counts.overall_answered_count == this.questionCate.counts.overall_question_count) + // { + // this.overallqustioncountAccess = false; + // }else + // { + // this.overallqustioncountAccess = true; + // } + + + + + + // }else + if(this.questionCate.template_forms!='') + { + this.templateAccess = true; + this.questionCate = this.questionCate + this.dis_forms=this.questionCate.template_forms.filter(val=>val.isAnswerable==true ); + if(this.questionCate.hasOwnProperty('salary_check') && this.questionCate.salary_check.hasOwnProperty('flag')){ + this.templateget.salaried_primary_key=this.questionCate.salary_check.id + console.log("temp",this.templateget.salaried_primary_key,this.split_customer_abbr) + // if(this.split_customer_abbr == 'SAL' && this.questionCate.salary_check.flag == '1'){ + // let template=['18','5','12'] + // this.dis_forms=this.dis_forms.filter(val=>template.filter(sal_form=>sal_form == val.form_id).length >0) + // } + } + console.log("temp",this.questionCate); + + this.searchTempForm = this.questionCate.template_forms + // for(let i of this.dis_forms){ + // if(i.) + // } + let answered=this.dis_forms.filter(res=>res.isAnswered == true) + console.log("an len",answered); + if(answered.length == this.dis_forms.length){ + this.overallqustioncountAccess= true; + } + else{ + this.overallqustioncountAccess=false + } + + + // if(this.questionCate.counts.overall_answered_count !=0 && this.questionCate.counts.overall_question_count !=0 && this.questionCate.counts.overall_answered_count == this.questionCate.counts.overall_question_count) + // { + // this.overallqustioncountAccess = false; + // }else + // { + // this.overallqustioncountAccess = true; + // } + } + else + { + this.questionCateAccess = false; + this.templateAccess = false; + this.questionCate = "No Template Available"; + } + } + }) + + } + random_ng_past() + { + for(let id of this.questionCate.question_answers){ + var a = Math.floor(Math.random() * 256); + var b = Math.floor(Math.random() * 256); + var c = Math.floor(Math.random() * 256); + this.bgColorqustCat.push("rgb(" + a + "," + b + "," + c + ")"); + + } + for(let id of this.questionCate.template_forms){ + var x = Math.floor(Math.random() * 256); + var y = Math.floor(Math.random() * 256); + var z = Math.floor(Math.random() * 256); + this.bgColortempForm.push("rgb(" + x + "," + y + "," + z + ")"); + + } + } + questionsTag(categroyId){ + + this.pdinfo = this.pddetails; + + this.questionCate = this.questionCate.question_answers.filter(cate=>cate.fk_question_category_id == categroyId)[0]; + // if(this.questionCate.questions.length !="0"){ + let navigationExtras:NavigationExtras={ + state:{ + questionDetails:this.questionCate, + pdDetails:this.pdinfo + } + } + // this.navCtrl.navigateForward('/pd/PdQuestionPage',{'questionDetails':this.questionCate,'pdDetails':this.pdinfo}); + this.navCtrl.navigateForward('/pd/PdQuestionPage',navigationExtras); + + // }else + // { + // this.getcategoryList(); + // this.toast.pdTriggerappmessage('No Question Available'); + // } + } + + tempQustionTag(categroyId) + { + //FOR UPDATING THE PD APPLICANT LIST + this.pdinfo = this.pddetails; + let newData= this.questionCate.pdapplicants_detials + console.log("new Data",newData); + this.pdinfo.applicat_details=newData + console.log(this.pdinfo); + + let formName = this.questionCate.template_forms.filter(temp=>temp.form_id==categroyId)[0]; + let navigationExtras:NavigationExtras={ + state:{ + FormId:formName, + pdDetails:this.pdinfo + } + } + + if(categroyId ==5) + { + // this.navCtrl.push(PdQuestionAddressPage,{'FormId':formName,'pdDetails':this.pdinfo}); + this.navCtrl.navigateForward(route_prefix+'all-ques',navigationExtras) + // this.navCtrl.navigateForward(route_prefix+'PdQuestionAddressPage',navigationExtras); + }else if(categroyId==12){ + this.navCtrl.navigateForward(route_prefix+'EmpInfoPage',navigationExtras) + }else if(categroyId==10) + { + this.navCtrl.navigateForward(route_prefix+'LoansPage',navigationExtras) + }else if(categroyId==8){ + + this.navCtrl.navigateForward(route_prefix+'CurrentLoansPage',navigationExtras) + }else if(categroyId==13) + { + // this.navCtrl.push(PdQuestionBusinessGroupPage,{'FormId':formName,'pdDetails':this.pdinfo}); + this.navCtrl.navigateForward(route_prefix+'business-group',navigationExtras) + + }else if(categroyId==7) + { + + this.navCtrl.navigateForward(route_prefix+'BankingPage',navigationExtras) + }else if(categroyId==6) + { + + this.navCtrl.navigateForward(route_prefix+'FamilyPage',navigationExtras) + }else if(categroyId ==4){ + + this.navCtrl.navigateForward(route_prefix+'AssestsPage',navigationExtras) + }else if(categroyId==9){ + this.navCtrl.navigateForward(route_prefix+'OtherIncomePage',navigationExtras) + }else if(categroyId==1){ + // this.navCtrl.push(PdQuestionSupplierInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); + }else if(categroyId==3){ + this.navCtrl.navigateForward(route_prefix+'PersonalInfoPage',navigationExtras) + }else if(categroyId==11) + { + // this.navCtrl.push(PdQuestionStockInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); + + }else if(categroyId==14) + { + // this.navCtrl.push(PdQuestionFinancialInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); + + }else if(categroyId ==2) + { + // this.navCtrl.push(PdQuestionClientInfoPage,{'FormId':formName,'pdDetails':this.pdinfo}); + }else if(categroyId ==17) + { + this.navCtrl.navigateForward(route_prefix+'RentalDashPage',navigationExtras) + } + else if(categroyId==16) + { + // this.navCtrl.push(PdQuestionAssessedDashPage,{'FormId':formName,'pdDetails':this.pdinfo}); + + }else if(categroyId==15) + { + this.navCtrl.navigateForward(route_prefix+'LenderRepresentativePage',navigationExtras) + }else if(categroyId==18) + { + this.navCtrl.navigateForward(route_prefix+'GeneralInfoPage',navigationExtras) + }else if(categroyId==19) + { + this.navCtrl.navigateForward(route_prefix+'NeighbourHoodPage',navigationExtras) + } + else if(categroyId==20) + { + this.navCtrl.navigateForward(route_prefix+'FinalRemarkPage',navigationExtras) + } + else if(categroyId==24) + { + this.navCtrl.navigateForward(route_prefix+'QueriesDocsPage',navigationExtras) + } + } + filter(view){ + if(!view){ + this.viewchange = true; + }else{ + this.viewchange = false; + } + //alert(this.viewchange); + } + pdlistsearch(searchbar) { + // this.questionCate = this.searchQuestion; + // this.questionCate.template_forms = this.searchTempForm; + // reset countries list with initial call + //this.pdinprogress = this.countriesInitial; + // set q to the value of the searchbar + var q = searchbar.target.value; + + // if the value is an empty string don't filter the items + if(this.searchQuestion !== undefined){ + if (q.trim() == '') { + return ; + }else{ + // this.questionCate.question_answers = this.searchQuestion.filter((v) => { + // if (v.category_name.toLowerCase().indexOf(q.toLowerCase())>-1) { + // return true; + // } + // }) + } + }else + { + if (q.trim() == '') { + return ; + }else{ +// this.questionCate.template_forms = this.searchTempForm.filter((v) => { +// if (v.form_name.toLowerCase().indexOf(q.toLowerCase())>-1) { +// return true; +// } +// }) + } + } +} +PdFormCompletnessCheck(){ + if(!this.overallqustioncountAccess){// For checking Answered Forms + this.toast.pdTriggerappmessage("Please complete all the Forms"); + return; +} + this.pdstatusprovide.pdFormsCompletenessCheck(this.questionCate.pdmaster_details.pd_id).subscribe(res=>{ + console.log(res['records']); + if(res['records'].length > 0){ + //have to work +// const modalOpt:ModalOptions={ + +// cssClass:"pdimagecompleteModal" +// } +// const modal=this.modalCtrl.create(FormCompleteCheckModalPage,{'values':res['records']},modalOpt) +// modal.present() +// ---end of have to work-- +this.formCompleteNessAlert(res) + } + else{ + //alert("completed PD") + this.completePDAlert() + } + }) +} +async formCompleteNessAlert(res){ + const modal=await this.modalCtrl.create({ + component:FormCompleteCheckModalPage, + componentProps:{'values':res['records'],'pdMaster':this.pddetails,'is_display_overrideBtn':true}, + cssClass:"pdimagecompleteModal" + }) + await modal.present() + modal.onDidDismiss().then(result=> { + console.log(result); + if(result.data.pd_overwritten == true) { + this.pd_completeness_override = '1' + this.completePDAlert(); + } + }) +} +completePDAlert() +{ + if(!this.overallqustioncountAccess){// For checking Answered Forms + this.toast.pdTriggerappmessage("Please complete all the Forms"); + return; + } + if(this.enableAddonPD == true){//FOR CHECKING THE ADDRESS COUNT. IF VALUE 1 THIS BLOCK EXECUTED + return new Promise(reject=>{ + // let alert=this.toast.setAlertForCompletePD() + // alert.present(); + // alert.onDidDismiss(data=>{ + // if(data == 'yes'){ + + // this.completed('COMPLETED'); + // } + // else if(data == 'addon'){ + // this.completed('ADD_ON_PENDING') + // } + // else{ + // reject(); + // } + // }) + this.toast.setAlertForCompletePD().then(data=>{ + if(data == 'yes'){ + this.completed('COMPLETED'); + } + else if(data == 'addon'){ + this.completed('ADD_ON_PENDING') + } + else{ + reject(); + } + }) + }) +} +else{ //IF ADDRESS COUNT 0 THIS BLOCK EXECUTED + return new Promise(reject=>{ + // let alert=this.toast.setAlert('Complete Discussion','Please confirm you are completing the Discussion and forwarding for Quality Check ?') + // alert.present() + // alert.onDidDismiss(data=>{ + // if(data==false){ + // reject() + // } + // else{ + // this.completed('COMPLETED') + // } + // }) + this.toast.setAlert('Complete Discussion','Please confirm you are completing the Discussion and forwarding for Quality Check ?').then(data=>{ + if(data==false){ + reject() + } + else{ + this.completed('COMPLETED') + } + }) + }) +} +} + completed(status:string) + { + + + //alert.present(); + let users = localStorage.getItem('pd_user_details') + users=JSON.parse(users).userid + if(!this.overallqustioncountAccess){// For checking Answered Forms + this.toast.pdTriggerappmessage("Please complete all the Forms"); + } + else{ + let data = {'pd_id':this.questionCate.pdmaster_details.pd_id,'pd_status':status,'fk_updatedby':users,'updatedon':currentdate,'random_string':this.questionCate.pdmaster_details.random_string,'pd_completeness_override':this.pd_completeness_override}; + + this.pdstatusprovide.updatepdStatus(data).subscribe(res=> + { + this.completedAccess = res; + if(this.completedAccess.dataStatus == true) + { + this.toast.pdTriggerappmessage("Completed Successfully..!") + setTimeout(()=>{ + this.navCtrl.navigateRoot('/pd'); + },2000); + + + } + }) + } +} + doRefresh(refresher) { + this.questionCate = []; + this.questionfinishedList = []; + this.shared.refresh(); + this.getcategoryList(); + setTimeout(() => { + refresher.target.complete(); + }, 2000); + } +} diff --git a/src/app/pages/pd/pd-questions/pd-questions-routing.module.ts b/src/app/pages/pd/pd-questions/pd-questions-routing.module.ts new file mode 100755 index 0000000..5765f19 --- /dev/null +++ b/src/app/pages/pd/pd-questions/pd-questions-routing.module.ts @@ -0,0 +1,31 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { PdQuestionCategoryPage } from './pd-question-category/pd-question-category'; +import { EmployerInfoComponent } from './employer-info/employer-info.component'; + +const routes: Routes = [ + { + path:'', + redirectTo:'PdQuestionCategoryPage', + pathMatch:'full' + }, + { + path:'PdQuestionCategoryPage', + component:PdQuestionCategoryPage + }, + { + path: 'all-ques', + loadChildren: () => import('./all-ques/all-ques.module').then( m => m.AllQuesPageModule) + }, + // { + // path: 'sal-ques', + // // loadChildren: () => import('./all-ques/all-ques.module').then( m => m.AllQuesPageModule) + // component:EmployerInfoComponent + // } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class PdQuestionsRoutingModule { } diff --git a/src/app/pages/pd/pd-questions/pd-questions.module.ts b/src/app/pages/pd/pd-questions/pd-questions.module.ts new file mode 100755 index 0000000..e6bdad9 --- /dev/null +++ b/src/app/pages/pd/pd-questions/pd-questions.module.ts @@ -0,0 +1,35 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { PdQuestionsRoutingModule } from './pd-questions-routing.module'; +import {NgxMatSelectSearchModule} from 'ngx-mat-select-search' +import { IonicModule } from '@ionic/angular'; +import { MaterialModuleModule } from 'src/app/shared/material-module/material-module.module'; +import { PdGeneralImagesModule } from '../pd-general-images/Pd-general-images.module'; +import { PdQuestionCategoryPage } from './pd-question-category/pd-question-category'; +import { SearchRelationPipe } from 'src/app/pipes/search-relation/search-relation'; + +import { NgxIonicImageViewerModule } from 'ngx-ionic-image-viewer'; +import { ImageNameModule } from '../pd.module'; +import { PipesModule } from 'src/app/pipes/pipes.module'; + + +@NgModule({ + declarations: [PdQuestionCategoryPage, + SearchRelationPipe + + ], + entryComponents:[], + imports: [ + CommonModule, + PdQuestionsRoutingModule, + MaterialModuleModule, + NgxMatSelectSearchModule, + IonicModule, + PdGeneralImagesModule, + NgxIonicImageViewerModule, + ImageNameModule, + PipesModule + ] +}) +export class PdQuestionsModule { } diff --git a/src/app/pages/pd/pd-questions/search.ts b/src/app/pages/pd/pd-questions/search.ts new file mode 100755 index 0000000..ffe90c8 --- /dev/null +++ b/src/app/pages/pd/pd-questions/search.ts @@ -0,0 +1,4 @@ +export interface searchValue{ + id:number; + name:string +} \ No newline at end of file diff --git a/src/app/pages/pd/pd-routing.module.ts b/src/app/pages/pd/pd-routing.module.ts new file mode 100755 index 0000000..624dbf3 --- /dev/null +++ b/src/app/pages/pd/pd-routing.module.ts @@ -0,0 +1,62 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { PdListPage } from './pd-list/pd-list'; +import { LoginPage } from '../authentication/login/login.page'; +import { InputPage } from './input/input'; +import { BouncedRejectPage } from './input/bounced-reject/bounced-reject'; +// import { PdQuestionCategoryPage } from './pd-question-category/pd-question-category'; +import { CompleteListPage } from './complete-list/complete-list'; +import { OfficerNotesModalPage } from './officer-notes-modal/officer-notes-modal'; +import { OtpPage } from './otp/otp'; +// import { GoogleMapPage } from './google-map/google-map'; +// import { AuthPage } from '../authentication/auth/auth'; + + +const routes: Routes = [ + { + path:'', + redirectTo:'pd-list', + pathMatch:'full' + }, + { + path:'pd-list', + // loadChildren:() => import('./login/login.module').then(m=>m.LoginPageModule) + component:PdListPage + }, + { + path:'InputPage', + component:InputPage + }, + { + path:'BouncedRejectPage', + component:BouncedRejectPage + }, + { + path:'CompleteListPage', + component:CompleteListPage + }, + { + path:'GoogleMapPage', + // component:GoogleMapPage + loadChildren: () => import('./google-map/google-map.module').then(m=>m.GoogleMapPageModule) + }, + { + path:'pd-questions', + loadChildren: () => import('./pd-questions/pd-questions.module').then(m=>m.PdQuestionsModule) + }, + { + path:'OfficerNotesModalPage', + component:OfficerNotesModalPage + }, + + { + path:'OtpPage', + component:OtpPage + } + ]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class PdRoutingModule { } diff --git a/src/app/pages/pd/pd.module.ts b/src/app/pages/pd/pd.module.ts new file mode 100755 index 0000000..de70166 --- /dev/null +++ b/src/app/pages/pd/pd.module.ts @@ -0,0 +1,76 @@ +import { NgModule } from '@angular/core'; +import { CommonModule, APP_BASE_HREF } from '@angular/common'; + +import { PdRoutingModule } from './pd-routing.module'; +import { MaterialModuleModule } from 'src/app/shared/material-module/material-module.module'; +import { PdListPage } from './pd-list/pd-list'; +import {ContentLoaderModule} from '@netbasal/content-loader' +import { InputPage } from './input/input'; +import { BouncedRejectPage } from './input/bounced-reject/bounced-reject'; +// import { PdQuestionCategoryPage } from './pd-questions/pd-question-category/pd-question-category'; +// import { PdGeneralImagesPage } from './pd-general-images/pd-general-images'; +import { NgxIonicImageViewerModule } from 'ngx-ionic-image-viewer'; +// import { PdGeneralImagesPage } from './pd-general-images/pd-general-images'; +import { FormCompleteCheckModalPage } from './form-complete-check-modal/form-complete-check-modal'; +import { CompleteListPage } from './complete-list/complete-list'; +import { PdGeneralImagesModule } from './pd-general-images/Pd-general-images.module'; +import { OfficerNotesModalPage } from './officer-notes-modal/officer-notes-modal'; +import { OtpPage } from './otp/otp'; +import { PdAllocationPage } from './pd-allocation/pd-allocation'; +import { MapAddressPage } from './map-address/map-address'; +// import { RupeeCurrencyFormatPipe } from 'src/app/pipes/rupee-currency-format/rupee-currency-format'; +import { ImageNameModelPage } from './Modal/image-name-model/image-name-model'; +import { QuestionCategoryProvider } from 'src/app/services/question-category/question-category'; +import { CameraProvider } from 'src/app/services/common-provider/camera'; +import { HTTP_INTERCEPTORS } from '@angular/common/http'; +import { ReqTokenInterceptor } from 'src/app/services/_guard/req-token.interceptor'; +import { AdvanceFilterPage } from './pd-list/advance-filter/advance-filter'; +import { MAT_DATE_LOCALE } from '@angular/material'; +// import { AuthPage } from '../authentication/auth/auth'; +// import { Geolocation } from '@ionic-native/geolocation/ngx'; +// import { HttpClientModule } from '@angular/common/http'; + +// ANOTHER THE SHARED MODULE FOR IMAGE NAME MODAL PAGE + +@NgModule({ + declarations : [ImageNameModelPage], + entryComponents:[ImageNameModelPage], + imports:[MaterialModuleModule], + exports:[ImageNameModelPage], +}) + +export class ImageNameModule { } + +// ---- END OF IMAGE NAME MODULE ------ + +@NgModule({ + declarations: [PdListPage,InputPage,BouncedRejectPage,CompleteListPage, + OtpPage,PdAllocationPage,MapAddressPage, OfficerNotesModalPage, + + FormCompleteCheckModalPage,MapAddressPage,AdvanceFilterPage + ], + entryComponents:[FormCompleteCheckModalPage,MapAddressPage,AdvanceFilterPage], + imports: [ + CommonModule, + PdRoutingModule, + MaterialModuleModule, + ContentLoaderModule, + NgxIonicImageViewerModule, + PdGeneralImagesModule, + ImageNameModule + ], + exports:[ImageNameModelPage], + providers:[{provide: APP_BASE_HREF, useValue: '/pd/'}, + QuestionCategoryProvider,CameraProvider, + { + provide:HTTP_INTERCEPTORS, + useClass: ReqTokenInterceptor, + multi: true + }, + { provide: MAT_DATE_LOCALE, useValue: 'en-GB' }] +}) + + +export class PdModule { } + + diff --git a/src/app/pipes/num-to-words/num-to-words.pipe.spec.ts b/src/app/pipes/num-to-words/num-to-words.pipe.spec.ts new file mode 100755 index 0000000..7327310 --- /dev/null +++ b/src/app/pipes/num-to-words/num-to-words.pipe.spec.ts @@ -0,0 +1,8 @@ +import { NumToWordsPipe } from './num-to-words.pipe'; + +describe('NumToWordsPipe', () => { + it('create an instance', () => { + const pipe = new NumToWordsPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/src/app/pipes/num-to-words/num-to-words.pipe.ts b/src/app/pipes/num-to-words/num-to-words.pipe.ts new file mode 100755 index 0000000..bd4cd56 --- /dev/null +++ b/src/app/pipes/num-to-words/num-to-words.pipe.ts @@ -0,0 +1,82 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'numToWords' +}) +export class NumToWordsPipe implements PipeTransform { + + transform(value: any, ...args: any[]): any { + return this.convertNumberToWords(value); + } + convertNumberToWords(price) { + // console.log("From Pipe>>>>",price) + if(price == '' || price == null || price == undefined){ + return null + } + price = price.toString(); + let atemp = price.split("."); + let amount = atemp[0]; + // console.log('Inside Fun'); + var sglDigit = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"], + dblDigit = ["Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"], + tensPlace = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"], + + handle_tens = function(dgt, prevDgt) { + return 0 == dgt ? "" : " " + (1 == dgt ? dblDigit[prevDgt] : tensPlace[dgt]) + }, + handle_utlc = function(dgt, nxtDgt, denom) { + return (0 != dgt && 1 != nxtDgt ? " " + sglDigit[dgt] : "") + (0 != nxtDgt || dgt > 0 ? " " + denom : "") + }; + + var str = "", + digitIdx = 0, + digit = 0, + nxtDigit = 0, + words = []; + if (amount += "", isNaN(parseInt(amount))) str = ""; + else if (parseInt(amount) > 0 && amount.length <= 10) { + // console.log("Else Func") + for (digitIdx = amount.length - 1; digitIdx >= 0; digitIdx--) + switch (digit = amount[digitIdx] - 0, nxtDigit = digitIdx > 0 ? amount[digitIdx - 1] - 0 : 0, amount.length - digitIdx - 1) { + case 0: + words.push(handle_utlc(digit, nxtDigit, "")); + break; + case 1: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 2: + words.push(0 != digit ? " " + sglDigit[digit] + " Hundred" + (0 != amount[digitIdx + 1] && 0 != amount[digitIdx + 2] ? " and" : "") : ""); + break; + case 3: + words.push(handle_utlc(digit, nxtDigit, "Thousand")); + break; + case 4: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 5: + words.push(handle_utlc(digit, nxtDigit, "Lakh")); + break; + case 6: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 7: + words.push(handle_utlc(digit, nxtDigit, "Crore")); + break; + case 8: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 9: + words.push(0 != digit ? " " + sglDigit[digit] + " Hundred" + (0 != amount[digitIdx + 1] || 0 != amount[digitIdx + 2] ? " and" : " Crore") : "") + // break; + // case 10: + // words.push(0 != digit ? " " + sglDigit[digit] + " Lakh" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] ? " and" : " Hundred" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] || 0 != price[digitIdx + 3] ? " and" : " Crore")) + // : "") + // break; + } + str = words.reverse().join("") + // str =(str.length > 2 && str.charAt(str.length-2)==',') ? str.slice(0, -2) : str; + } else { return str = ""; } + let currencySymbol = '₹'; + return currencySymbol+' '+str+' '+'Only' + } +} diff --git a/src/app/pipes/pd/pd.ts b/src/app/pipes/pd/pd.ts new file mode 100755 index 0000000..9b63c3f --- /dev/null +++ b/src/app/pipes/pd/pd.ts @@ -0,0 +1,30 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +/** + * Generated class for the PdPipe pipe. + * + * See https://angular.io/api/core/Pipe for more info on Angular Pipes. + */ +@Pipe({ + name: 'pdPipe', +}) +export class PdPipe implements PipeTransform { + /** + * Takes a value and makes it lowercase. + */ + transform(value: any, searchItem:any):any { + let findExistIndex = searchItem.existRelationList.filter(sVal=>sVal.relation_to==searchItem.currentApplicantID); + if(findExistIndex.length>0){ + let check = value.filter(function(fVal){ + return !findExistIndex.some(function(sVal){ + return fVal.pd_co_applicant_id==searchItem.currentApplicantID || fVal.pd_co_applicant_id == sVal.pd_co_applicant_id; + }); + }) + return check; + } + else { + return value.filter(fVal=>fVal.pd_co_applicant_id!=searchItem.currentApplicantID); + } + + } +} diff --git a/src/app/pipes/pipes.module.ts b/src/app/pipes/pipes.module.ts new file mode 100755 index 0000000..4d601b2 --- /dev/null +++ b/src/app/pipes/pipes.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core'; +import { PdPipe } from './pd/pd'; +import { NumToWordsPipe } from './num-to-words/num-to-words.pipe'; +@NgModule({ + declarations: [PdPipe, NumToWordsPipe, + + ], + imports: [], + exports: [PdPipe,NumToWordsPipe] +}) +export class PipesModule {} diff --git a/src/app/pipes/rupee-currency-format/rupee-currency-format.ts b/src/app/pipes/rupee-currency-format/rupee-currency-format.ts new file mode 100755 index 0000000..347f936 --- /dev/null +++ b/src/app/pipes/rupee-currency-format/rupee-currency-format.ts @@ -0,0 +1,35 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +/** + * Generated class for the RupeeCurrencyFormatPipe pipe. + * + * See https://angular.io/api/core/Pipe for more info on Angular Pipes. + */ +@Pipe({ + name: 'rupeeCurrencyFormat', +}) +export class RupeeCurrencyFormatPipe implements PipeTransform { + /** + * Takes a value and makes it lowercase. + */ + transform(value: any):any { + if (!isNaN(value) && value) { + var currencySymbol = '₹'; + //var output = Number(input).toLocaleString('en-IN'); <-- This method is not working fine in all browsers! + var result = value.toString().split('.'); + + var lastThree = result[0].substring(result[0].length - 3); + var otherNumbers = result[0].substring(0, result[0].length - 3); + if (otherNumbers != '') + lastThree = ',' + lastThree; + var output = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree; + + if (result.length > 1) { + output += "." + result[1]; + } + + return currencySymbol+output; + } + // return value.toLowerCase(); + } +} diff --git a/src/app/pipes/search-relation/search-relation.ts b/src/app/pipes/search-relation/search-relation.ts new file mode 100755 index 0000000..9001eee --- /dev/null +++ b/src/app/pipes/search-relation/search-relation.ts @@ -0,0 +1,29 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +/** + * Generated class for the SearchRelationPipe pipe. + * + * See https://angular.io/api/core/Pipe for more info on Angular Pipes. + */ +@Pipe({ + name: 'searchRelation', +}) +export class SearchRelationPipe implements PipeTransform { + /** + * Takes a value and makes it lowercase. + */ + transform(value: any, searchItem:any): any { + let findExistIndex = searchItem.existRelationList.filter(sVal=>sVal.relation_to==searchItem.currentApplicantID); + if(findExistIndex.length>0){ + let check = value.filter(function(fVal){ + return !findExistIndex.some(function(sVal){ + return fVal.pd_co_applicant_id==searchItem.currentApplicantID || fVal.pd_co_applicant_id == sVal.pd_co_applicant_id; + }); + }) + return check; + } + else { + return value.filter(fVal=>fVal.pd_co_applicant_id!=searchItem.currentApplicantID); + } + } +} diff --git a/src/app/pipes/test.pipe.spec.ts b/src/app/pipes/test.pipe.spec.ts new file mode 100755 index 0000000..5d0c5af --- /dev/null +++ b/src/app/pipes/test.pipe.spec.ts @@ -0,0 +1,8 @@ +import { TestPipe } from './test.pipe'; + +describe('TestPipe', () => { + it('create an instance', () => { + const pipe = new TestPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/src/app/pipes/test.pipe.ts b/src/app/pipes/test.pipe.ts new file mode 100755 index 0000000..23a17a7 --- /dev/null +++ b/src/app/pipes/test.pipe.ts @@ -0,0 +1,12 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'test' +}) +export class TestPipe implements PipeTransform { + + transform(value: any, ...args: any[]): any { + return null; + } + +} diff --git a/src/app/services/_guard/auth.guard.ts b/src/app/services/_guard/auth.guard.ts new file mode 100755 index 0000000..74a03f2 --- /dev/null +++ b/src/app/services/_guard/auth.guard.ts @@ -0,0 +1,63 @@ +import { Injectable } from '@angular/core'; +// import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router'; +import { Observable } from 'rxjs'; +import { ActivatedRouteSnapshot, RouterStateSnapshot, Router, CanActivate } from '@angular/router'; +import { AwsServiceProvider } from '../aws-service/aws-service'; +import { CognitoServiceProvider } from '../aws-service/cognito.service'; +// import { Ionic, NavController, NavParams } from '@ionic/angular'; + + + + +@Injectable({ + providedIn: 'root' +}) +export class AuthGuard implements CanActivate{ + + constructor(private cognito:CognitoServiceProvider,private router:Router) { + + + } + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { + if (this.cognito.getToken() == false) { + // alert("if"); + this.router.navigate(['/'],{replaceUrl:true}); + return false + } else { + // alert("else"); + // this.router.navigate(['/authentication'],{replaceUrl:true}); + return true; + } + } + getlogin(){ + // if (this.shared.getToken()) { + // // alert("if"); + // //alert(); + // return true; + // } else { + // // alert("else"); + + // //this.myGlobalServiceNav.setRoot(LoginPage); + // this.shared.isloggin = false; + // return false; + + + // } + } + // canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { + + + // } + + // public getToken(): string { + // return localStorage.getItem('token'); + // } + + // public logOut() { + // localStorage.clear(); + // if(localStorage.getItem('token') === null){ + // this.router.navigate(['/login']); + // } + // } +} \ No newline at end of file diff --git a/src/app/services/_guard/req-token.interceptor.ts b/src/app/services/_guard/req-token.interceptor.ts new file mode 100755 index 0000000..1b293c7 --- /dev/null +++ b/src/app/services/_guard/req-token.interceptor.ts @@ -0,0 +1,180 @@ +import { Injectable, Injector } from '@angular/core'; +import { + HttpRequest, + HttpHandler, + HttpInterceptor, + HttpSentEvent, + HttpHeaderResponse, + HttpProgressEvent, + HttpResponse, + HttpUserEvent +} from '@angular/common/http'; +// import { AuthGuard } from './auth.guard'; +import { Observable, of, BehaviorSubject, throwError} from 'rxjs'; + +// import { Router } from '@angular/router'; + +import { catchError, switchMap } from 'rxjs/operators'; +import { HttpErrorResponse } from "@angular/common/http"; + +import { CognitoServiceProvider } from '../aws-service/cognito.service'; +import { ConstantsProvider } from '../constants/constants'; +// import { Observable, EMPTY, throwError } from 'rxjs'; +// import { catchError } from 'rxjs/operators'; +// import 'rxjs/add/operator/catch'; +import { AwsServiceProvider } from '../aws-service/aws-service'; +import { ToastProvider } from '../common-provider/toast'; +import { NavController } from '@ionic/angular'; + +// const cognitoService=this.injector.get(CognitoServiceProvider) +// const constantProvider=this.injector.get(ConstantsProvider) + +@Injectable({ + providedIn: 'root' +}) +export class ReqTokenInterceptor implements HttpInterceptor{ + + constructor(public injector:Injector ) { + + } + isRefreshingToken: boolean = false; + tokenSubject: BehaviorSubject = new BehaviorSubject(null); + + addToken(req: HttpRequest, token: string): HttpRequest { + + const constantProvider = this.injector.get(ConstantsProvider) + return req.clone({ + setHeaders: { + 'Authorization': constantProvider.environment().authorization, + 'Token': token, + 'From': '2', + } + }) + } +// addToken1(req: HttpRequest, token: string): HttpRequest { + +// const constantProvider=this.injector.get(ConstantsProvider) +// console.log("Token 1",token,req); +// return req.clone({ setHeaders: {'Authorization': constantProvider.environment().authorization, +// 'Token':token, +// 'From':'2', +// }}) +// } +intercept(req: HttpRequest, next: HttpHandler): Observable | HttpUserEvent> { + const cognitoService=this.injector.get(CognitoServiceProvider) + + let token=cognitoService.getToken() || '' + console.log("Token From Interceptor >>",cognitoService.getToken()) + if(token!=''){ + token=token.getIdToken().getJwtToken() + } + return next.handle(this.addToken(req, token)).pipe( + catchError(error => { + console.log("Initial Error",error); + if (error instanceof HttpErrorResponse) { + if((error).status) { + return this.handle401Error(req,next,error) + } + else{ + return this.handle401Error(req,next,error) + } + } else { + console.log("observable error") + return Observable.throw(error); + } + })); + } + + handle401Error(req: HttpRequest, next: HttpHandler,err) { + // console.log("err",err) + const cognitoService=this.injector.get(CognitoServiceProvider) + // console.log("entered",this.isRefreshingToken,this.tokenSubject); + + if (err instanceof HttpErrorResponse) { + + if(err.status == 401 && err.error.error.toLowerCase() == 'invalid token!'){ + console.log("Refreshing Token",err.status) + if (!this.isRefreshingToken) { + this.isRefreshingToken = true; + + // Reset here so that the following requests wait until the token + // comes back from the refreshToken call. + this.tokenSubject.next(null); + + // return cognitoService.refresh() + // .subscribe((newToken: string) => { + // console.log("new",newToken) + // if (newToken) { + // this.tokenSubject.next( cognitoService.getToken().getIdToken().getJwtToken()); + + // console.log(this.tokenSubject); + // next.handle(this.addToken1(req, cognitoService.getToken().getIdToken().getJwtToken())); + // } + + // // If we don't get a new token, we are in trouble so logout. + // const awsService=this.injector.get(AwsServiceProvider) + // awsService.logout(); + // },err=>console.log("Error refresh",err)) + return cognitoService.refresh().pipe( + switchMap((newToken: string) =>{ + if(newToken){ + this.isRefreshingToken=false + this.tokenSubject.next(newToken); + + return next.handle(this.addToken(req, cognitoService.getToken().getIdToken().getJwtToken())) + } + const awsService=this.injector.get(AwsServiceProvider) + return awsService.logout(); + }) + ) + + // .catch(error => { + // // If there is an exception calling 'refreshToken', bad news so logout. + // return this.logoutUser(); + // }) + // .finally(() => { + // this.isRefreshingToken = false; + // }); + } else { + console.log("Else Part 1201") + // return this.tokenSubject + // // .filter(token => token != null) + // .take(1) + // .switchMap(token => { + return next.handle(this.addToken(req, cognitoService.getToken().getIdToken().getJwtToken())); + // }); + } + } + else{ + // return Observable.throw("Observable throw",err); + return this.handleError('',err) + } +} + else{ + return Observable.throw("Observable throw",err); + } +} + + + private handleError (operation = 'operation', error?: HttpErrorResponse) { + // return (error: any): Observable => { + // if(error instanceof HttpErrorResponse){ + console.log("Error: " ,error); + if(error.status == 401){ + localStorage.clear(); + const NavCtrl=this.injector.get(NavController) + NavCtrl.navigateRoot('/') + } + else + // if(error.status == 0) + { + const toastProvider=this.injector.get(ToastProvider) + toastProvider.pdTriggerappmessage("Network Error") + } + + return throwError(error) + // return of(result as T); + } + // }; + // } +} \ No newline at end of file diff --git a/src/app/services/_guard/token.interceptor.ts b/src/app/services/_guard/token.interceptor.ts new file mode 100755 index 0000000..1760a4b --- /dev/null +++ b/src/app/services/_guard/token.interceptor.ts @@ -0,0 +1,112 @@ +import { Injectable, Injector } from '@angular/core'; +import { + HttpRequest, + HttpHandler, + HttpEvent, + HttpInterceptor, + HttpHeaders +} from '@angular/common/http'; +// import { AuthGuard } from './auth.guard'; +import { Observable, of} from 'rxjs'; +import 'rxjs/add/operator/mergeMap' + +// import { Router } from '@angular/router'; + +import { catchError, map, tap } from 'rxjs/operators'; +import { HttpErrorResponse } from "@angular/common/http"; + +import { CognitoServiceProvider } from '../aws-service/cognito.service'; +import {ConstantsProvider} from '../constants/constants' +import { ToastProvider } from '../common-provider/toast'; +@Injectable({ + providedIn: 'root' +}) +export class TokenInterceptor implements HttpInterceptor{ + constructor(private injector:Injector ) { + + } + intercept(request: HttpRequest, next: HttpHandler): Observable> { + let env:any + const constantProvider=this.injector.get(ConstantsProvider) + env=constantProvider.environment() + // console.log("authorization",env) + return Observable.create((observer: any) => { + setTimeout(() => { + const authService = this.injector.get(CognitoServiceProvider) + authService.refresh(); + observer.next(authService.getToken()) + observer.complete() + // console.log("token",authService.getToken()) + }) +}) +.mergeMap((token_res: any) => { + let authReq = request + let token=token_res || null + if (token_res) { + + token=token_res.idToken.jwtToken + } + + // console.log("authorization",token) + env=env.authorization + // console.log("Sparq",env) + authReq = request.clone({ + setHeaders: { + 'Authorization': env, + 'Token':token, + 'From':'1', + } + }) + // } + + return next.handle(authReq).pipe( + catchError(this.handleError('role', [])) + ) +}) + + // request = request.clone({ + // setHeaders: { + // Authorization: `${this.auth.getToken()}` + // } + // }); + // let token:any; + // this.shared.refresh(); + // token = this.shared.getToken() || null; + + // token = token.getIdToken().getJwtToken(); + + //console.log(token); + // let requests = request.clone({ + // headers:new HttpHeaders({ + + // 'Authorization': 'sparqvenba2018', + // 'Token':'', + // 'From':'1', + + + // }) + + // }); + + // return next.handle(requests).pipe( + // catchError(this.handleError('role', [])) + // ) + } + + private handleError (operation = 'operation', result?: T) { + + const toastProvider=this.injector.get(ToastProvider) + return (error: any): Observable => { + toastProvider.pdTriggerappmessage('Network Error'); + console.log("error",error) + if(error instanceof HttpErrorResponse){ + console.error("Error: ", error.status); + if(error.status == 401){ + localStorage.clear(); + // this.router.navigate(['/authentication/login']); + } + return of(result as T); + } + }; + } +} \ No newline at end of file diff --git a/src/app/services/_guard/unsaved-changes.guard.spec.ts b/src/app/services/_guard/unsaved-changes.guard.spec.ts new file mode 100755 index 0000000..f7f5342 --- /dev/null +++ b/src/app/services/_guard/unsaved-changes.guard.spec.ts @@ -0,0 +1,15 @@ +import { TestBed, async, inject } from '@angular/core/testing'; + +import { UnsavedChangesGuard } from './unsaved-changes.guard'; + +describe('UnsavedChangesGuard', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [UnsavedChangesGuard] + }); + }); + + it('should ...', inject([UnsavedChangesGuard], (guard: UnsavedChangesGuard) => { + expect(guard).toBeTruthy(); + })); +}); diff --git a/src/app/services/_guard/unsaved-changes.guard.ts b/src/app/services/_guard/unsaved-changes.guard.ts new file mode 100755 index 0000000..6a4af0b --- /dev/null +++ b/src/app/services/_guard/unsaved-changes.guard.ts @@ -0,0 +1,21 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree, CanDeactivate } from '@angular/router'; +import { Observable } from 'rxjs'; + +export interface CanComponentDeactivate { + canDeactivate: () => Observable | Promise | boolean; +} + +@Injectable({ + providedIn: 'root' +}) +export class UnsavedChangesGuard implements CanDeactivate{ + canDeactivate(component: CanComponentDeactivate, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): boolean | UrlTree | Observable | Promise { + // throw new Error("Method not implemented."); + let url: string = currentState.url; + console.log('Url: '+ url); + + return component.canDeactivate(); + } + +} diff --git a/src/app/services/aws-service/aws-service.ts b/src/app/services/aws-service/aws-service.ts new file mode 100755 index 0000000..9f96b21 --- /dev/null +++ b/src/app/services/aws-service/aws-service.ts @@ -0,0 +1,213 @@ +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { + AuthenticationDetails, + CognitoUserPool, + CognitoUser, + +} from "amazon-cognito-identity-js"; + + +import { Observable } from "rxjs"; +// import "rxjs/add/operator/map"; +import { CognitoServiceProvider } from './cognito.service'; +import { ConstantsProvider } from '../constants/constants'; +import { UrlResolver } from '@angular/compiler'; +const sineedgedev_poolData = { + UserPoolId: "ap-south-1_qQ85yQZJO", // UserName :SPARQ_SINEEDGE_DEV + ClientId: "2o5c3cs9k3als16nqhp3irh8rs" // ClientName: SINEEDGE_DEV_WEB +} +const lender_poolData = { + UserPoolId: "ap-south-1_hFiGyr1Gw", // Username :SPARQ_LENDER_DEV + ClientId: "38v9rpp1495v60e1gd14mj6rjr" // ClientName:LENDER_DEV_WEB +}; +const vendor_poolData = { + UserPoolId: "ap-south-1_K57yPaWxV", + ClientId: "" +} +// const sineedgeUserPool = new CognitoUserPool(sineedge_poolData); +const lenderUserPool = new CognitoUserPool(lender_poolData); +// const sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData); + + +/** +* Identity PoolID +*/ +const sineedgeIdentity = "ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961";//"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961"; +const lenderIdentity = "ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907"; +const vendorIdenttiy = "ap-south-1:5ad3ce43-4260-4273-87b2-e6a377b8e874"; + +const currentDate = new Date().toJSON().slice(0,19).replace('T',' '); +let sineedgedevUserpool + +@Injectable({ + providedIn: 'root' +}) +export class AwsServiceProvider { +apiurl:any; + constructor(public http:HttpClient,public shared:CognitoServiceProvider,public con:ConstantsProvider) { + this.apiurl = con.environment(); + // console.log("api",this.apiurl); + // this.apiurl=this.apiurl.url + const sineedgePoolData={ + UserPoolId: this.apiurl.userPoolId, // UserName :SPARQ_SINEEDGE_DEV + ClientId: this.apiurl.clientId // ClientName: SINEEDGE_DEV_WEB + } + sineedgedevUserpool=new CognitoUserPool(sineedgePoolData) + } + + dologin(authenticationData) { + // alert(); + //(authenticationData); + const authenticationDetails = new AuthenticationDetails(authenticationData); + let Newpassword = authenticationData.newpassword; + let attributesData = []; + const userData = { + Username: authenticationData.Username, // User email id + Pool: sineedgedevUserpool // user Pool ID + }; + let cognitoUser = new CognitoUser(userData); + return Observable.create(observer => { + cognitoUser.authenticateUser(authenticationDetails, { + newPasswordRequired: (userAttributes, requiredAttributes) => { // new password set + cognitoUser.completeNewPasswordChallenge( + Newpassword, + attributesData, + { + onSuccess: function (result) { + observer.next(result); + observer.complete(); + }, + onFailure: function (err) { + //(err); + observer.error(err); + //LoginComponent.prototype.open(); + } + } + ); + }, + onSuccess: function (result) { // success user login + // let accessToken = result.getAccessToken().getJwtToken(); + ////(result); + //window.localStorage.setItem('Currentuser', '1'); + observer.next(result); + observer.complete(); + this.shared.isloggin = true; + }, + onFailure: function (err) { // error user login + + //alert(err.message); + observer.error(err); + } + }); + }); + } + userforgotpass(auth) { + ////(auth); + const userData = { + Username: auth.Username, + Pool: sineedgedevUserpool + }; + let cognitoUser = new CognitoUser(userData); + return Observable.create(observe => { + cognitoUser.forgotPassword({ + onSuccess: function (data) { + // successfully initiated reset password request + //('CodeDeliveryData from forgotPassword: ' + data); + observe.next(data); + }, + onFailure: function (err) { + alert(err.message || JSON.stringify(err)); + }, + //Optional automatic callback + inputVerificationCode: function (data) { + //('Code sent to: ' + data); + var verificationCode = prompt('Please input verification code ', ''); + var newPassword = prompt('Enter new password ', ''); + return cognitoUser.confirmPassword(verificationCode, newPassword, { + onSuccess() { + alert("Password Changed Successfully"); + }, + onFailure(err) { + //('Password not confirmed!'); + alert(err.message || JSON.stringify(err)) + } + }); + } + }); + }); + + + } + /** + * End of the function + */ + + /** + * Logout function + */ + logout(){ + + return Observable.create(observe=>{ + this.shared.getCurrentUser().signOut(); + + observe.next(); + + observe.complete(); + }); + } + + + /** + * Config function + */ + // getconfig() { + // let session:any = this.shared.getAccessToken() || ""; + + // let config = ""; + // config += AWS.config.region = "ap-south-1"; + // config += AWS.config.credentials = new AWS.CognitoIdentityCredentials({ + // IdentityPoolId: sineedgeIdentity, // for sineedge_DEV + // Logins: { + // "cognito-idp.ap-south-1.amazonaws.com/ap-south-1_qQ85yQZJO": session + // .getIdToken() + // .getJwtToken() + // } + // // NOTE: getSession must be called to authenticate user before calling getUserAttributes + // }); + // return config; + // } + + getlocale(){ + let session:any = this.shared.getToken() || null; + let userid='' + if(session != null){ + userid = session.idToken.payload.locale; + } + return userid; + } + getuserprofile(userid) + { + + + // alert(); + + //console.log(cogusers.idToken.payload.locale); + let roles = {'userid':userid}; + + + // let request = new RequestOptions({headers:headers}); + return this.http.post(this.apiurl.url+'getUsersDetails',roles); + + } + + userpinupdate(pin) + { + let userid = this.getlocale(); + let records = {'mpin':pin,'updatedon':currentDate,'fk_updatedby':userid,'userid':userid}; + let formdata = new FormData(); + + formdata.append('records',JSON.stringify(records)); + return this.http.post(this.apiurl.url+'updateExistUser',formdata); + } +} diff --git a/src/app/services/aws-service/cognito.service.ts b/src/app/services/aws-service/cognito.service.ts new file mode 100755 index 0000000..faabe43 --- /dev/null +++ b/src/app/services/aws-service/cognito.service.ts @@ -0,0 +1,194 @@ +import { Injectable } from '@angular/core'; + +// import { CanActivateChild, Router } from '@angular/router'; +import { + AuthenticationDetails, + CognitoUserPool, + CognitoUser, + +} from "amazon-cognito-identity-js"; +// import { NavController, NavParams, MenuController } from '@ionic/angular'; + +// import { environment } from '../../environments/environment'; + +import { BehaviorSubject,Observable,of } from 'rxjs'; +import { ConstantsProvider } from '../constants/constants'; + +const sineedge_poolData = { + UserPoolId: "ap-south-1_y7dt3iEaX", //ap-south-1_qQ85yQZJO UserName :SPARQ_SINEEDGE_DEV + ClientId: "291qt4smn5pql6o8cc2hi201lj" // ClientName: SINEEDGE_DEV_WEB +}; +const sineedgedev_poolData = { + UserPoolId: "ap-south-1_qQ85yQZJO", // UserName :SPARQ_SINEEDGE_DEV + ClientId: "2o5c3cs9k3als16nqhp3irh8rs" // ClientName: SINEEDGE_DEV_WEB +} +const lender_poolData = { + UserPoolId: "ap-south-1_hFiGyr1Gw", // Username :SPARQ_LENDER_DEV + ClientId: "38v9rpp1495v60e1gd14mj6rjr" // ClientName:LENDER_DEV_WEB +}; +const vendor_poolData = { + UserPoolId: "", + ClientId: "" +} +const sineedgeUserPool = new CognitoUserPool(sineedge_poolData); +const lenderUserPool = new CognitoUserPool(lender_poolData); +// const sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData); + +/** +* Identity PoolID +*/ +const sineedgeIdentity = "ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961";//"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961"; +const lenderIdentity = "ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907"; +const vendorIdenttiy = ""; +// serviceProvider +const apiurl = "http://ssa.sineedge.com/sparqapi/api/"; +// const apiurl = "http://localhost/sparqapi/api/"; +let sineedgedevUserpool +@Injectable({ + providedIn: 'root' +}) + +export class CognitoServiceProvider { + public loggedIn :boolean = false; + public getenv:any; + // public static _REGION = environment.region; + + // public static _IDENTITY_POOL_ID = environment.identityPoolId; + // public static _USER_POOL_ID = environment.UserPoolId; + // public static _CLIENT_ID = environment.ClientId; + + // public static _POOL_DATA: any = { + // UserPoolId: CognitoService._USER_POOL_ID, + // ClientId: CognitoService._CLIENT_ID + // }; + + + // public cognitoCreds: AWS.CognitoIdentityCredentials; +isloggin:boolean = false; + + + + + + constructor(private constantProvider:ConstantsProvider) { + this.getenv=this.constantProvider.environment() + // console.log("cognito",this.getenv); + const sinnedgePoolData = { + UserPoolId: this.getenv.userPoolId, // UserName :SPARQ_SINEEDGE_DEV + ClientId: this.getenv.clientId // ClientName: SINEEDGE_DEV_WEB + } + sineedgedevUserpool = new CognitoUserPool(sinnedgePoolData); + + } + getCurrentUser() { + + return sineedgedevUserpool.getCurrentUser(); +} + get isLoggedIn() { + if(sineedgedevUserpool.getCurrentUser() !=null){ + this.loggedIn = true; + }else{ + this.loggedIn = false; + } + return this.loggedIn; // {2} + } + +refresh() { + let tokenexp:boolean; + return Observable.create(observer=>{ + if(this.getCurrentUser() !=null){ + + return this.getCurrentUser().getSession(function (err, session) { + if (err) { + console.log("CognitoUtil: Can't set the credentials:" + err); + } + + else { + if (session.isValid()) { + tokenexp = session.isValid(); + of(tokenexp) + console.log("CognitoUtil: refreshed successfully"); + + } else { + tokenexp = session.isValid(); + console.log("CognitoUtil: refreshed but session is still not valid"); + + } + } + + // return tokenexp; + observer.next(tokenexp) + observer.complete() + + }); + }else{ + this.loggedIn = false; + return false + } +}); +} +getAccessToken(){ + this.refresh(); + return new Promise((resolve, reject) => { + let jwttoken = ''; + if (this.getCurrentUser() != null) { + //console.log(JSON.stringify(this.getCurrentUser())); + // console.log('76 if'); + this.getCurrentUser().getSession(function (err, session) { + if (err) { + console.log("CognitoUtil: Can't set the credentials:" + err); + jwttoken =''; + // console.log('81 if') + reject(err); + } + else { + if (session.isValid()) { + // console.log('85 else if'); + jwttoken = session; + resolve(); + } else { + + } + } + }); + } + else { + //console.log("else"); + reject(); + } +}); +} + +getToken():any { + let isloggin = false; + let jwttoken = ''; + if (this.getCurrentUser() != null) { + + this.getCurrentUser().getSession(function (err, session) { + if (err) { + // console.log("CognitoUtil: Can't set the credentials:" + err); + isloggin = false; + //console.log('81 if') + } + else { + //alert('function else'); + if (session.isValid()) { + // console.log('85 else if'); + jwttoken = session; + isloggin = true; + } else { + + isloggin = false; + } + } + }); + } + else { + // console.log("else"); + isloggin = false; + } + return jwttoken; +} + + +} diff --git a/src/app/services/common-provider/camera.ts b/src/app/services/common-provider/camera.ts new file mode 100755 index 0000000..ec1881a --- /dev/null +++ b/src/app/services/common-provider/camera.ts @@ -0,0 +1,505 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Camera } from '@ionic-native/camera/ngx'; +import { Platform, ModalController } from '@ionic/angular'; +import { ConstantsProvider } from '../constants/constants'; +import * as watermark from 'watermarkjs' +import { DatePipe } from '@angular/common'; +import { ImageNameModelPage } from 'src/app/pages/pd/Modal/image-name-model/image-name-model'; +import { DocumentScanner, DocumentScannerOptions } from '@ionic-native/document-scanner/ngx'; +import { File } from '@ionic-native/file/ngx'; +// import { Diagnostic } from '@ionic-native/diagnostic/ngx'; +// import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; + +// import { resolve } from 'path'; + +/* + Generated class for the CameraProvider provider. + + See https://angular.io/guide/dependency-injection for more info on providers + and Angular DI. +*/ +// var cordova; +@Injectable({ + providedIn: 'root' +}) +export class CameraProvider { + myObject: any; + geoCords: any='-'; + pipe=new DatePipe('en-US'); + fileSDRootPath:any; + datePipe = new DatePipe('en-US') + extSdRoot: any = ''; + constructor(public http: HttpClient,public camera:Camera,private platform:Platform,private constant:ConstantsProvider + , private modalCtrl:ModalController,private documentScanner:DocumentScanner, private file:File, + private plt:Platform) { + console.log( + "%cWelcome, Camera Provider", + "font-size:300%;color:purple;font-weight:bold;font-family:Mongoose; text-transform: uppercase;" + ); + console.log("Data Directory",this.file.dataDirectory) + console.log("externalRootDirectory",this.file.externalRootDirectory) + console.log("externalDataDirectory",this.file.externalDataDirectory) + console.log("applicationDirectory",this.file.applicationDirectory) + this.fileSDRootPath = this.file.externalRootDirectory + document.addEventListener("deviceready", function() { + // this.requestExternalSdPermission('') + }) + // this.requestExternalSdCard() + + } + private saveRecovery():Promise<{}>{ + return new Promise((resolve)=>{ + if(this.platform.is('android')){ + localStorage.setItem('camera_imag',JSON.stringify(this.myObject)) + resolve(); + } + else{ + resolve(); + } + }) + } + // myObject(arg0: string, myObject: any) { + // throw new Error("Method not implemented."); + // } + getpicture() + { + localStorage.removeItem('current_coordinates') + + const options = { + quality: 75, + destinationType: this.camera.DestinationType.DATA_URL, + sourceType : this.camera.PictureSourceType.CAMERA, + targetWidth: 900, + targetHeight: 900, + correctOrientation: true, + encodingType: this.camera.EncodingType.PNG, + saveToPhotoAlbum:false, + }; + console.log(localStorage.getItem('current_coordinates')) + + // If set to crop, restricts the image to a square of 600 by 600 + + return this.saveRecovery().then(()=>{ + return this.camera.getPicture(options).then(imageData => { + return this.constant.getGeoTag().then(geoCoordinates => { + this.geoCords = geoCoordinates + localStorage.setItem('current_coordinates',this.geoCords) + + console.log('From Camera.ts - getPicture fn image are',imageData) + const base64Image = 'data:image/png;base64,' + imageData; + this.myObject=base64Image + // console.log("base 64",base64Image); + return base64Image; + }); + }, error => { + // let dateTem = "Wed Mar 20 2020 15:01:55 GMT+0530 (India Standard Time)" + // let dateT = this.pipe.transform(dateTem,'yyyy-MM-dd HH:mm:ss'); + // let courrentDateTime: string = this.pipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss'); + // let diffInMs: number = Date.parse(courrentDateTime) - Date.parse(dateT); + // console.log("Time is difference",diffInMs,courrentDateTime,dateT); + // let minutes = Math.floor(diffInMs / 60000); + // console.log("Minutes of "+diffInMs+" MilliSecond is ",minutes); + localStorage.removeItem('current_coordinates') + console.log('CAMERA ERROR -> ' + JSON.stringify(error)); + if(!this.plt.is('cordova')) { + return 'data:image/png;base64,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' + } else { + return "error" + } + }); + }, error => { + console.log('CAMERA ERROR -> ' + JSON.stringify(error)); + return "error" + }); + + } + + getcommonpicture() + { + const options = { + quality: 100, + destinationType: this.camera.DestinationType.DATA_URL, + targetWidth: 500, + targetHeight: 500, + correctOrientation: true + }; + + // If set to crop, restricts the image to a square of 600 by 600 + + + return this.camera.getPicture(options).then(imageData => { + console.log('From Camera.ts - getcommonpicture fn image are',imageData) + const base64Image = 'data:image/png;base64,' + imageData.filter(data=>data.fk_form_id == null); + console.log("base 64",base64Image); + return base64Image; + }, error => { + localStorage.removeItem('current_coordinates') + console.log('CAMERA ERROR -> ' + JSON.stringify(error)); + return "error" + }); + + } + addWatermarks(base64Img) { + + return new Promise((resolve, reject) => { + + // this.constant.getGeoTag().then(geoCoordinates => { + // this.geoCords = geoCoordinates + // }); + this.geoCords=localStorage.getItem('current_coordinates') + console.log("corrds",this.geoCords) + let raw_img = base64Img + var today = new Date(); + // let today_loc = today.toLocaleString('en-US', { timeZone: "Asia/Kolkata" }) + let today_loc=this.pipe.transform(today, 'yyyy-MM-dd, h:mm a') + var date = today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate(); + // var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); + var dateTime = 'Date : ' + today_loc; + + console.log(date) + + // fetch(raw_img) + // .then(res => res.blob()) + // .then(blob => { + watermark([raw_img, 'assets/img/PD_watermark.png']) + .image(watermark.image.upperRight()) + .then(img => { + raw_img = img.src; + + let text = watermark.text + watermark([raw_img]) + .image(text.upperLeft(dateTime, '20px sans-serif', '#ff0000', 1.0, 40)) + .then(img => { + raw_img = img.src; + console.log("2d", raw_img) + + let Location = `Location : ` + this.geoCords + watermark([raw_img]) + .image(text.upperLeft(Location, '20px sans-serif', '#ff0000', 1.0)) + .then(img => { + raw_img = img.src + console.log("3rd", raw_img) + resolve(img.src) + localStorage.removeItem('current_coordinates') + }); + }); + }); + + + }) + // }); + } + async showImageDialog(){ + localStorage.removeItem('current_coordinates') + let modalCtrl= await this.modalCtrl.create({ + component:ImageNameModelPage, + componentProps:{'image_decision':true}, + cssClass:'imageDecisionModal', + backdropDismiss:true + }) + await modalCtrl.present() + const {role,data} = await modalCtrl.onDidDismiss(); + if(data && data != undefined){ + return this.capture_doc_or_img(data).then(res=>{ + return res; + + },err=>{ + console.log(err) + return 'error' + }) +} +else{ + return 'error' +} + } + capture_doc_or_img(decision?){ + console.log("decision",decision) + if(decision == 'DOCUMENT'){ + return this.documentScanner_fun().then(res=>{ + if (res != 'error') { + return res + } + else{ + return 'error' + } + },error => { + console.log("Doc Scanner Error ", JSON.stringify(error)); + return 'error' + }) + } + else{ + return this.getpicture().then(res=>{ + if (res != 'error') { + return res + } + else{ + return 'error' + } + }, error => { + console.log("Camera Error ", JSON.stringify(error)); + return 'error' + }) + } + } + documentScanner_fun(){ + // this.deleteScanFolder() + localStorage.removeItem('current_coordinates') + let opts: DocumentScannerOptions = {returnBase64:true,quality:3.0}; + return this.constant.getGeoTag().then(geoCoordinates => { + return this.documentScanner.scanDoc(opts) + .then((res: string) => { + this.geoCords = geoCoordinates + localStorage.setItem('current_coordinates',this.geoCords) + console.log('data:image/png;base64,'+res) + let base64Img='data:image/png;base64,'+res + this.deleteDocumentImage_local() + return base64Img + // this.imageBucket.push({image:'data:image/png;base64,' + res,Name:"New Image"}) + }) + .catch((error: any) => {console.error(error); + localStorage.removeItem('current_coordinates') + return 'error';}); + + },err=>{ + console.log("location Error",err) + }) + } + + deleteDocumentImage_local(){ + // DELETING THE scanSample Folder + this.file.checkDir(this.fileSDRootPath,"scanSample").then(vd=>{ + console.log("ScanSample Folder",vd) + if(vd){ + // this.file.listDir(this.fileSDRootPath,'scanSample').then(res=>{ + // console.log("Files inside SCANSAMPLE",res); + // }) + this.file.removeRecursively(this.fileSDRootPath,"scanSample").then(er=>{ + console.log("ScanSample Folder is Deleted",er); + },err=>{ + console.log("Error on removeRecursively",err); + }) + } + },err=>{ + console.log("Error on checkDir",err); + }) + + // DELETING THE scanned image in pictures folder + this.deletImageBasedonModifiedTime('pictures','',this.fileSDRootPath).then(res=>{ + console.log("Final Result >>>>>>>> Pictures",res,this.extSdRoot); + // if(res == 0 && this.extSdRoot != '') { + // this.deletImageBasedonModifiedTime('') + // } + }) + + // DELETING THE captured image in camera folder + this.deletImageBasedonModifiedTime('Camera','DCIM/',this.fileSDRootPath).then(res=>{ + console.log("Final Result >>>>>>>> Camera",res,this.extSdRoot); + // DELETING THE CAPTURED IMAGE IN SD CARD CAMERA FOLDER IF THE DEFAULT STORAGE PATH IS SDCARD + // if(res == 0 && this.extSdRoot != '') { + // this.deletImageBasedonModifiedTime('Camera','/DCIM/',this.extSdRoot).then(extRes=>{ + // console.log("External Final Result>>>>>> Camera",extRes) + // }) + // } + }) +// this.file.removeFile() + } + + deletImageBasedonModifiedTime(folder_name,parent_folder,rootpath){ + console.log("Full Path",rootpath+parent_folder) + return this.file.checkDir(rootpath+parent_folder,folder_name).then(vd=>{ + console.log(folder_name+" Folder",vd) + return this.file.listDir(rootpath+parent_folder,folder_name).then(files=>{ + // console.log("List Dir of "+folder_name,files); + // console.log("Files length > 0" ,files.length > 0) + + if(files.length > 0) { + return this.arrangeandDeleteFile(files).then(fileDet=>{ + if( fileDet != 0) { + return this.file.removeFile(rootpath+parent_folder+folder_name,fileDet.name).then(res=>{ + console.log(folder_name+" Folder image ("+fileDet.name+") removed successfully",res) + // alert(folder_name+" Folder image ("+fileDet.name+") removed successfully") + return 1 + },err=>{ + console.log("Error while removing"+folder_name,err); + }) + } + else { + return 0 + } + }) + + } + else{ + return 0 + } + },err=>{ + console.log("Error on List Dir",err); + return 0 + }) + } + ,err=>{ + console.log("Error on Check Dir",err); + return 0 + }) + } + arrangeandDeleteFile(files){ + // FUNCTION RETURNS THE FILES WITH DATE TIME AND NAME OF THE PICTURE IN DESC DATE TIME FORMAT + return this.getFileDetailWithDateTime(files).then((fileDet:any)=>{ + console.log("Atlast",fileDet) + fileDet =fileDet[0] + console.log(fileDet); + let current_datewithTime:any = new Date(); + let current_date = this.datePipe.transform(current_datewithTime,'yyyy-MM-dd') + console.log("includes Check",fileDet.date_modified.includes(current_date)); + current_datewithTime = this.datePipe.transform(current_datewithTime,'yyyy-MM-dd HH:mm:ss') + let diffInMs: number = Date.parse(current_datewithTime) - Date.parse(fileDet.date_modified); + let diffInminutes = Math.floor(diffInMs / 60000); + console.log("Time comparison",current_datewithTime,fileDet.date_modified) + console.log("Minutes Difference: "+diffInminutes+" Milli Seconds Diff :",diffInMs); + console.log("minutes check less than 10",diffInminutes <= 10); + // verify the current date with image modified date + if(fileDet.date_modified.includes(current_date) && diffInminutes <= 5) { + return fileDet + } + else{ + // this.deletImageBasedonModifiedTime() + return 0 + } + + // if(fileDet.length > 0) + }) + } + getFileDetailWithDateTime(files) { + return new Promise((resolve,reject)=>{ + let fileArraywithDate:any = [] + files.forEach((single_file:any,index)=>{ + // console.log("Is File" ,single_file.isFile,single_file); + if(single_file.isFile) { + + // IF THE FILE IS NOT FOLDER BELOW FUNCTION IS USED TO GET THE FILE INFO + this.file.resolveLocalFilesystemUrl(single_file.nativeURL).then((fileEntry:any)=>{ + // }) + // window.resolveLocalFileSystemURL(single_file.nativeURL, (fileEntry:any) => { + // console.log("fileEntry",fileEntry) + fileEntry.getMetadata((metadata) => { + // console.log("Meta Data",metadata) + fileArraywithDate.push({name:single_file.name,date_modified:this.datePipe.transform(metadata.modificationTime,'yyyy-MM-dd HH:mm:ss')}); + // console.log("image size : " + metadata.size); + // console.log("image date : " + metadata.modificationTime); + }); + + },err=>{ + console.log("Error on resolveLocalFilesystemUrl",err); + }) + } + if(index == files.length -1){ + setTimeout(()=>{ + // console.log("Modified arr",fileArraywithDate); + // console.log(JSON.stringify(fileArraywithDate)); + let Modified_d = fileArraywithDate.sort((a,b)=>{ + return new Date(b.date_modified).getTime() - new Date(a.date_modified).getTime(); + }) + resolve(Modified_d) + return Modified_d + },3000) + } + }) + }) + } + + // requesting external sd card permission to automatically delete the document scanner image from sd card +// requestExternalSdPermission(done){ +// console.log("Entered"); +// cordova.plugins.diagnostic.requestRuntimePermission(function(status){ +// switch(status){ +// case cordova.plugins.diagnostic.permissionStatus.GRANTED: +// console.log("Permission granted"); +// this.getExternalSdLocation(done); +// break; +// case cordova.plugins.diagnostic.permissionStatus.DENIED_ONCE: +// console.log("Permission denied"); +// break; +// case cordova.plugins.diagnostic.permissionStatus.DENIED_ALWAYS: +// console.log("Permission permanently denied"); +// // reportError(done); +// break; +// } +// }, function(error){ +// console.error("The following error occurred: "+error); +// // reportError(done); +// }, cordova.plugins.diagnostic.permission.WRITE_EXTERNAL_STORAGE); +// } +// getExternalSdLocation(done){ +// console.log("inside getExternal"); +// cordova.plugins.diagnostic.getExternalSdCardDetails(function(details){ +// details.forEach(function(detail){ +// if(detail.type == "application"){ +// // cordova.file.externalSdCardApplicationDirectory = detail.filePath; +// console.log("application",detail.filePath); +// }else if(detail.type == "root"){ +// // cordova.file.externalSdCardRootDirectory = detail.filePath; +// console.log("root",detail.filePath); +// } +// }); +// done(); +// }, function(error){ +// console.error(error); +// done(); +// }); +// } + // requestExternalSdCard(){ + // this.diagnostic.requestRuntimePermission(this.diagnostic.permission.WRITE_EXTERNAL_STORAGE).then(status=>{ + // console.log("Exterrnal storage permission####################",status) + // switch(status){ + // case this.diagnostic.permissionStatus.GRANTED: + // console.log("Permission granted"); + // this.getExternalSdLocation(); + // break; + // case this.diagnostic.permissionStatus.DENIED: + // console.log("Permission denied"); + + // break; + // case this.diagnostic.permissionStatus.DENIED_ALWAYS: + // console.log("Permission permanently denied"); + // // reportError(done); + // break; + // } + // }) + // } + +// getExternalSdLocation(){ +// // use cordova.file.externalSdCardApplicationDirectory to write to SD card +// this.diagnostic.getExternalSdCardDetails().then(result=>{ +// console.log("Sd Card Details",result); +// this.diagnostic.requestExternalStorageAuthorization().then(authorization_status=>{ +// console.log("###############Authorization status",authorization_status); +// }) +// this.permissions.checkPermission(this.permissions.PERMISSION.WRITE_EXTERNAL_STORAGE).then(per_status=>{ +// console.log("Permission Status",per_status); +// }) +// console.log(this.file.externalApplicationStorageDirectory) +// result.forEach(val=>{ +// if(val.type == "root"){ +// this.extSdRoot = val.filePath; +// console.log("camera path",this.extSdRoot+"/DCIM/Camera") +// // this.file.checkDir(this.extSdRoot+"/DCIM/","Camera").then(vd=>{ +// // console.log("ScanSample Folder",vd) +// // if(vd){ +// // this.file.listDir(this.extSdRoot+"/DCIM/",'Camera').then(res=>{ +// // console.log("Files inside eXTERNAL CAMERA",res); +// // },err=>{ +// // console.log("err",err); +// // }) +// // } +// // },err=>{ +// // console.log("err",err); +// // }) +// } +// }) +// }, +// err=>{ +// console.log("Error getting sd Card Details",err) +// }) +// } +} diff --git a/src/app/services/common-provider/events/events.service.spec.ts b/src/app/services/common-provider/events/events.service.spec.ts new file mode 100755 index 0000000..968802b --- /dev/null +++ b/src/app/services/common-provider/events/events.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { EventsService } from './events.service'; + +describe('EventsService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: EventsService = TestBed.get(EventsService); + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/common-provider/events/events.service.ts b/src/app/services/common-provider/events/events.service.ts new file mode 100755 index 0000000..a49a9bd --- /dev/null +++ b/src/app/services/common-provider/events/events.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { Subject, Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class EventsService { + private notifyEvent = new Subject(); + constructor() { } + + publishNotifyEvent(data) { + this.notifyEvent.next(data) + } + getAlertEvent():Observable { + return this.notifyEvent.asObservable(); + } +} diff --git a/src/app/services/common-provider/gps.service.spec.ts b/src/app/services/common-provider/gps.service.spec.ts new file mode 100755 index 0000000..7de9f92 --- /dev/null +++ b/src/app/services/common-provider/gps.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { GpsService } from './gps.service'; + +describe('GpsService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: GpsService = TestBed.get(GpsService); + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/common-provider/gps.service.ts b/src/app/services/common-provider/gps.service.ts new file mode 100755 index 0000000..b009bf6 --- /dev/null +++ b/src/app/services/common-provider/gps.service.ts @@ -0,0 +1,79 @@ +import { Injectable } from '@angular/core'; +import { Geolocation } from '@ionic-native/geolocation/ngx'; +import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; +import { LocationAccuracy } from '@ionic-native/location-accuracy/ngx'; +import { Platform } from '@ionic/angular'; + +@Injectable({ + providedIn: 'root' +}) +export class GpsService { + + constructor(private geo:Geolocation,private androidPermissions:AndroidPermissions, + private locationAccuracy:LocationAccuracy,private platform:Platform) { } + + getGeoTag(){ + return this.geo.getCurrentPosition().then(res=>{ + console.log("res from getGeoTag",res.coords) + console.log("res from provider",new Date(res.timestamp)) + let lat=res.coords.latitude; + let long=res.coords.longitude; + let curr_pos=lat+","+long + return curr_pos + }).catch(err=>console.log("error in getGeoTag",err)) + } + //Check if application having GPS access permission + checkGPSPermission() { + + return this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION).then( + result => { + if (result.hasPermission) { + + //If having permission show 'Turn On GPS' dialogue + return this.askToTurnOnGPS(); + } else { + + //If not having permission ask for permission + return this.requestGPSPermission(); + } + }, + err => { + console.log(err); + if(!this.platform.is('cordova')){ + return true; + } + } + ); + } + requestGPSPermission() { + return this.locationAccuracy.canRequest().then((canRequest: boolean) => { + if (canRequest) { + console.log("4"); + } else { + //Show 'GPS Permission Request' dialogue + return this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION) + .then( + () => { + // call method to turn on GPS + return this.askToTurnOnGPS(); + }, + error => { + //Show alert if user click on 'No Thanks' + console.log('requestPermission Error requesting location permissions ' + error) + } + ); + } + }); + } + askToTurnOnGPS() { + return this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then( + () => { + // When GPS Turned ON call method to get Accurate location coordinates + return this.getGeoTag().then(geoCords=>{ + return geoCords + }) + }, + error => console.log('Error requesting location permissions ' + JSON.stringify(error)) + ); + } +} diff --git a/src/app/services/common-provider/loading.ts b/src/app/services/common-provider/loading.ts new file mode 100755 index 0000000..28bc6b7 --- /dev/null +++ b/src/app/services/common-provider/loading.ts @@ -0,0 +1,66 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { LoadingController } from '@ionic/angular'; +/* + Generated class for the LoadingProvider provider. + + See https://angular.io/guide/dependency-injection for more info on providers + and Angular DI. +*/ +@Injectable({ + providedIn: 'root' +}) +export class LoadingProvider { + + loading: any; + constructor(public http: HttpClient,public loadingCtrl:LoadingController) { + console.log('Hello LoadingProvider Provider'); + setTimeout(()=>{ + this.dismissLoader() + },20000) + } + + async pdloader(content) + { + this.loading =await this.loadingCtrl.create({ + message: content, + backdropDismiss:false + }); + console.log(this.loading) + return await this.loading.present(); + } + async loaderForSendImage(){ + this.loading=await this.loadingCtrl.create({ + message:'Sending...', + backdropDismiss:true, + // duration:2000, + duration:20000 + }) + return await this.loading.present(); + } + async dataLoader(){ + this.loading=await this.loadingCtrl.create({ + message:"Fetching Data...", + showBackdrop:true, + duration:20000 + }) + await this.loading.present(); + } + async imageWatermarkLoader(){ + this.loading=await this.loadingCtrl.create({ + message:"Please Wait...", + showBackdrop:true, + duration:20000 + }) + await this.loading.present(); + } + dismissLoader(){ + + setTimeout(()=>{ + console.log(this.loading) + this.loading.dismiss() + },800) + } + + +} diff --git a/src/app/services/common-provider/toast.ts b/src/app/services/common-provider/toast.ts new file mode 100755 index 0000000..a6eb17c --- /dev/null +++ b/src/app/services/common-provider/toast.ts @@ -0,0 +1,159 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { ToastController,AlertController} from '@ionic/angular'; + +/* + Generated class for the ToastProvider provider. + + See https://angular.io/guide/dependency-injection for more info on providers + and Angular DI. +*/ +@Injectable({ + providedIn: 'root' +}) +export class ToastProvider { + + constructor(public http: HttpClient,public toast:ToastController,private alertCtrl:AlertController) { + console.log('Hello ToastProvider Provider'); + } + async pdTriggerappmessage(mess,status?){ + // this.toast.dismiss() + let valalert = await this.toast.create({ + message:mess, + duration: 3000, + position: 'bottom', + color:status + }); + + valalert.present(); +} +async setAlert(title_name,msg){ + + +let alert=await this.alertCtrl.create({ + header:title_name, + message:msg, + cssClass:'buttoncss', + backdropDismiss:false, + buttons:[{ + text:'No', + cssClass:'btnNo', + role:'no', + handler:()=>{ + alert.dismiss(false) + return false + } + },{ + text:'Yes', + cssClass:'btnYes', + role:'yes', + handler:()=>{ + alert.dismiss('s') + return false + } + }, + ] +}); +//alert.present() +await alert.present() + const {role,data} = await alert.onDidDismiss(); + return data +} +async setAlertForDocName(){ + + let alert=await this.alertCtrl.create({ + header:'Document Name', + message: 'Please Enter the Document Name', + cssClass:'prompt_alert', + inputs:[ + { + name:'Name', + //value:this.imageBucket[index].Name + placeholder:'Document Name' + } + ], + buttons:[ + { + text:'Submit', + role:'submit', + handler:data=>{ + console.log(data.Name) + alert.dismiss(data.Name) + } + + } + ] + }) + //alert.present(); + //this.inputFocus.setFocus(); + await alert.present() + const {role,data} = await alert.onDidDismiss(); + return alert +} +async setAlertForCompletePD(){ + let alert=await this.alertCtrl.create({ + header:'Complete Discussion', + message: 'Please confirm you are completing the Discussion and forwarding for Quality Check ?', + cssClass:'complete_alert', + buttons:[ + { + text:'Yes / Allow Addon PD', + role:'Add on PD', + handler:()=>{ + alert.dismiss('addon') + return false + } + }, + { + text:'Yes', + role:'Yes', + handler:()=>{ + alert.dismiss('yes') + return false + } + }, + { + text:'No', + role:'cancel', + handler:()=>{ + alert.dismiss('no') + return false + } + } + ] + }) + //alert.present(); + //this.inputFocus.setFocus(); + await alert.present() + const {role,data} = await alert.onDidDismiss(); + return data +} +//FOR NOTIFICATION +async setAlertwithButton(data){ + let alert =await this.alertCtrl.create({ + header: 'Notification', + subHeader:data.title , + message:data.message, + buttons: ['OK'] + }) + await alert.present(); +} +//FOR ALL PURPOSE CURRENTLY USED FOR APP UPDATE NOTIFICATION +async setAlertwithOKButton(title,msg){ + let alert =await this.alertCtrl.create({ + header:title, + message:msg, + backdropDismiss:false, + buttons: [{ + text:'OK', + role:'Ok', + handler:()=>{ + alert.dismiss('s') + return false + }}] + }) + await alert.present(); + const {role,data} = await alert.onDidDismiss(); + return data +} +} diff --git a/src/app/services/constants/constants.ts b/src/app/services/constants/constants.ts new file mode 100755 index 0000000..d62411e --- /dev/null +++ b/src/app/services/constants/constants.ts @@ -0,0 +1,430 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import {Geolocation} from '@ionic-native/geolocation/ngx' +import { LocationAccuracy } from '@ionic-native/location-accuracy/ngx'; +import { ToastProvider } from '../common-provider/toast'; +import { AndroidPermissions } from '@ionic-native/android-permissions/ngx'; +// import {C} from '../../constants' +// import {environment as ENV} from '../../environments/environment' + + +/* + Generated class for the ConstantsProvider provider. + + See https://angular.io/guide/dependency-injection for more info on providers + and Angular DI. +*/ +@Injectable({ + providedIn: 'root' +}) +export class ConstantsProvider { +public commonimage = "http://pdgenie.com/logo/avatar.jpg"; + constructor(public http: HttpClient,private geo:Geolocation,private locationAccuracy:LocationAccuracy,private toastProvider:ToastProvider) { + console.log('Hello ConstantsProvider Provider'); + } + + environment() + { + // let testapiurl = 'https://ssa.sineedge.com/sparqtest/api/'; + // let testapiurl_beta='http://ssa.sineedge.com/sparqtest_beta/api/'; + // let devapiurl_beta = 'http://ssa.sineedge.com/sparqapi_beta/api/'; + // let devapiurl = 'https://ssa.sineedge.com/sparqapi/api/'; + + // let localapiurl = 'http://192.168.0.6:9999/AWSEC2/sparqapi/api/'; + // let sparqprod= 'https://pdgenie.com/sparqprod/' + // let demo='https://demo.pdgenie.com/sparqtest/api/' + // let test='https://demo.pdgenie.com/sparqapi/api/' +// LIVE ENVIRONMENT + let production={ + app_origin:'https://pdgenie.com', + // url:'https://pdgenie.com/sparqprod/api/', + url:'https://api.pdgenie.com/sparqprod/api/', + environment_name:'production', + authorization:'TnAwuc64pVpcB9xf', + login_string: "cognito-idp.ap-south-1.amazonaws.com/ap-south-1_MlTee1O5V", + identityPoolId:'ap-south-1:31774418-8384-4fbb-b3e2-b87ce0f26ef1', + + /** THIS IS SE PD OFFICER CREDENTIALS */ + // userPoolId:'ap-south-1_MlTee1O5V', //username + // clientId:'2tr47e6sqj29opqsemn3lhnpk1' //Client Id for Mobile + + userPoolId : "ap-south-1_7Xvnpr2At", + clientId : "5kv697clegac0bcmd49o9di2t2" + } + // DEVELOPMENT ENVIRONMENT + let development={ + app_origin:'https://demo.pdgenie.com', + url:'https://apitest.pdgenie.com/sparqapi/api/', + environment_name:'development', + authorization:'sparqvenba2018', + login_string: "cognito-idp.ap-south-1.amazonaws.com/ap-south-1_qQ85yQZJO", + + identityPoolId:'ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961', + + /** OLD ONE */ + // userPoolId:'ap-south-1_qQ85yQZJO', + // clientId:'2o5c3cs9k3als16nqhp3irh8rs' + + userPoolId:'ap-south-1_cBDvQB1ok', + clientId:'3cgtnqfe4nuv0o39ju0s1f4nld' + } + // TESTING ENVIRONMNET + let testing={ + app_origin:'https://demo.pdgenie.com', + url:'https://apitest.pdgenie.com/sparqtest/api/', + environment_name:'testing', + authorization:'sparqvenba2018', + login_string: "cognito-idp.ap-south-1.amazonaws.com/ap-south-1_qQ85yQZJO", + + identityPoolId:'ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961', + // userPoolId:'ap-south-1_qQ85yQZJO', + // clientId:'67b4fnbuols5upms5to8bvqddh' //for web + // userPoolId: "ap-south-1_K57yPaWxV", // Username + // clientId: "5sntllm6nbqo120mteqqd8b9nq", // ClientName + + /** OLD ONE */ + // userPoolId:'ap-south-1_qQ85yQZJO', + // clientId:'2o5c3cs9k3als16nqhp3irh8rs' + + userPoolId:'ap-south-1_cBDvQB1ok', + clientId:'3cgtnqfe4nuv0o39ju0s1f4nld', + + + officeruserPoolId:'ap-south-1_qQ85yQZJO', + officerclientId:'2o5c3cs9k3als16nqhp3irh8rs' //for mobile + } + return production; + } + + getcurrentDate() + { + var today = new Date(); + var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); + var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate(); + var time = today.getHours() + ":" + today.getMinutes(); + let CurrentDate = date+"T00:00"; + return CurrentDate.toString(); + } + + convertNumberToWords(price) { + price = price.toString(); + let atemp = price.split("."); + let amount = atemp[0]; + + var sglDigit = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"], + dblDigit = ["Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"], + tensPlace = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"], + + handle_tens = function(dgt, prevDgt) { + return 0 == dgt ? "" : " " + (1 == dgt ? dblDigit[prevDgt] : tensPlace[dgt]) + }, + handle_utlc = function(dgt, nxtDgt, denom) { + return (0 != dgt && 1 != nxtDgt ? " " + sglDigit[dgt] : "") + (0 != nxtDgt || dgt > 0 ? " " + denom : "") + }; + + var str = "", + digitIdx = 0, + digit = 0, + nxtDigit = 0, + words = []; + if (amount += "", isNaN(parseInt(amount))) str = ""; + else if (parseInt(amount) > 0 && amount.length <= 10) { + for (digitIdx = amount.length - 1; digitIdx >= 0; digitIdx--) + switch (digit = amount[digitIdx] - 0, nxtDigit = digitIdx > 0 ? amount[digitIdx - 1] - 0 : 0, amount.length - digitIdx - 1) { + case 0: + words.push(handle_utlc(digit, nxtDigit, "")); + break; + case 1: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 2: + words.push(0 != digit ? " " + sglDigit[digit] + " Hundred" + (0 != amount[digitIdx + 1] && 0 != amount[digitIdx + 2] ? " and" : "") : ""); + break; + case 3: + words.push(handle_utlc(digit, nxtDigit, "Thousand")); + break; + case 4: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 5: + words.push(handle_utlc(digit, nxtDigit, "Lakh")); + break; + case 6: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 7: + words.push(handle_utlc(digit, nxtDigit, "Crore")); + break; + case 8: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 9: + words.push(0 != digit ? " " + sglDigit[digit] + " Hundred" + (0 != amount[digitIdx + 1] || 0 != amount[digitIdx + 2] ? " and" : " Crore") : "") + // break; + // case 10: + // words.push(0 != digit ? " " + sglDigit[digit] + " Lakh" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] ? " and" : " Hundred" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] || 0 != price[digitIdx + 3] ? " and" : " Crore")) + // : "") + // break; + } + str = words.reverse().join("") + // str =(str.length > 2 && str.charAt(str.length-2)==',') ? str.slice(0, -2) : str; + } else str = ""; + return str + + // var words = new Array(); + // words[0] = ''; + // words[1] = 'One'; + // words[2] = 'Two'; + // words[3] = 'Three'; + // words[4] = 'Four'; + // words[5] = 'Five'; + // words[6] = 'Six'; + // words[7] = 'Seven'; + // words[8] = 'Eight'; + // words[9] = 'Nine'; + // words[10] = 'Ten'; + // words[11] = 'Eleven'; + // words[12] = 'Twelve'; + // words[13] = 'Thirteen'; + // words[14] = 'Fourteen'; + // words[15] = 'Fifteen'; + // words[16] = 'Sixteen'; + // words[17] = 'Seventeen'; + // words[18] = 'Eighteen'; + // words[19] = 'Nineteen'; + // words[20] = 'Twenty'; + // words[30] = 'Thirty'; + // words[40] = 'Forty'; + // words[50] = 'Fifty'; + // words[60] = 'Sixty'; + // words[70] = 'Seventy'; + // words[80] = 'Eighty'; + // words[90] = 'Ninety'; + // amount = amount.toString(); + // var atemp = amount.split("."); + // var number = atemp[0].split(",").join(""); + // var n_length = number.length; + // let value:any = ""; + // var words_string = ""; + // if (n_length <= 9) { + // var n_array:any = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0); + // var received_n_array = new Array(); + // for (var i = 0; i < n_length; i++) { + // received_n_array[i] = number.substr(i, 1); + // } + // for (var i = 9 - n_length, j = 0; i < 9; i++, j++) { + // n_array[i] = received_n_array[j]; + // } + // for (var i = 0, j = 1; i < 9; i++, j++) { + // if (i == 0 || i == 2 || i == 4 || i == 7) { + // if (n_array[i] == 1) { + // n_array[j] = 10 + parseInt(n_array[j]); + // n_array[i] = 0; + // } + // } + // } + // value = ""; + // for (var i = 0; i < 9; i++) { + // if (i == 0 || i == 2 || i == 4 || i == 7) { + // value = n_array[i] * 10; + // } else { + // value = n_array[i]; + // } + // if (value != 0) { + // words_string += words[value] + " "; + // } + // if ((i == 1 && value != 0) || (i == 0 && value != 0 && n_array[i + 1] == 0)) { + // words_string += "Crores "; + // } + // if ((i == 3 && value != 0) || (i == 2 && value != 0 && n_array[i + 1] == 0)) { + // words_string += "Lakhs "; + // } + // if ((i == 5 && value != 0) || (i == 4 && value != 0 && n_array[i + 1] == 0)) { + // words_string += "Thousand "; + // } + // if (i == 6 && value != 0 && (n_array[i + 1] != 0 && n_array[i + 2] != 0)) { + // words_string += "Hundred and "; + // } else if (i == 6 && value != 0) { + // words_string += "Hundred "; + // } + // } + // words_string = words_string.split(" ").join(" "); + // } + // return words_string; +} +//FOR SEARCHABLE DROP DOWN +searchData(data,val: any,option) { + let DataValue:any + // let nameVal=name.toLowerCase() + console.log("statedata") + if (!data) { + return + } + let searchVal = val + if (!searchVal) { + // this.filteredState.next(this.stateList.slice()) + DataValue=data.slice() + return DataValue + + } + else { + searchVal = searchVal.toLowerCase() + } + if(option == "bank"){ + DataValue=data.filter(res => res.lender_name.toLowerCase().indexOf(searchVal) > -1) + return DataValue + } + else if(option == "city"){ + console.log("city",data) + DataValue=data.filter(res=>res.city_name.toLowerCase().indexOf(searchVal) > -1) + return DataValue + } + else if(option == "pin"){ + DataValue=data.filter(res=>res.pincode.toLowerCase().indexOf(searchVal) > -1) + return DataValue + } + else{ + //This is suitable for state + DataValue=data.filter(res => res.name.toLowerCase().indexOf(searchVal) > -1) + return DataValue + } + // this.filteredState.next( + // this.stateList.filter(res => res.state_name.toLowerCase().indexOf(searchVal) > -1) + // ) + } + sentenceCase (str) { + if ((str===null) || (str==='')) + return ''; + else + str = str.toString(); + + return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); + } + enableAccuracy() + { + return this.locationAccuracy.canRequest().then((canRequest: boolean) => { + + if(canRequest) { + // the accuracy option will be ignored by iOS + this.locationAccuracy.request(this.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY).then( + () => { + return this.getGeoTag(); + // this.getcurrentBackgroundLocation(); + }, + error =>{ console.log('Error requesting location permissions'+JSON.stringify(error)) + alert("We need location access to capture the geocoordinates of your place. Please turn on the location to continue"); + this.enableAccuracy() + } + ); + } + }); + } + getGeoTag(){ + return this.geo.getCurrentPosition().then(res=>{ + console.log("res from getGeoTag",res.coords) + console.log("res from provider",new Date(res.timestamp)) + let lat=res.coords.latitude; + let long=res.coords.longitude; + let curr_pos=lat+","+long + return curr_pos + }).catch(err=>console.log("error in getGeoTag",err)) + } + + generalCheck(x,y):Promise{ + return new Promise((resolve,reject)=>{ + + setTimeout(()=>{ + resolve(x+y) + },2000) + + + }) + + } + chekAlertOnLeave(){ + // ionViewWillLeave(){ + // console.log("dirty",this.rentalForms.dirty); + // if(this.rentalForms.dirty){ + + // return new Promise((resolve,reject)=>{ + // let alert=this.toast.setAlert("Data will be Lost","Are you sure want to Go Back") + // alert.present(); + // alert.onDidDismiss((data)=>{ + // console.log("d",data); + // if(data== false){ + // reject(); + // return true; + // } + // else{ + // //AFTER FORM DIRTY CHECK + // if (this.imageBucket.length > 0) { + // return new Promise((resolve1, reject1) => { + // let alert = this.toast.setAlert("Captured Images are not Saved", "Note:To Save the image press the Save Image button
Are you sure want to Go Back?") + // alert.present(); + // alert.onDidDismiss((data) => { + // console.log("d", data); + // if (data == false) { + // //reject1(); + // reject(); + // } + // else { + // resolve1(); + // resolve(); + // } + // }) + // }) + // } + // resolve(); + // } + // }) + // }) + + // } + // else{ + // //REGULAR CHEfalseCK FOR IMAGE IS CAPTURED + // if (this.imageBucket.length > 0) { + // return new Promise((resolve, reject) => { + // let alert = this.toast.setAlert("Captured Images are not Saved", "Note:To Save the image press the 'Save Image' button
Are you sure want to Go Back?") + // alert.present(); + // alert.onDidDismiss((data) => { + // console.log("d", data); + // if (data == false) { + // reject(); + // } + // else { + // resolve(); + // } + // }) + // }) + // } + + // } + + // } + + // return new Promise((resolve,reject)=>{ + // let alert=await this.toastProvider.setAlert("Data will be Lost","Are you sure want to Go Back") + // await alert.present(); + // alert.onDidDismiss((data)=>{ + // console.log("d",data); + // if(data== false){ + // reject(); + // return true; + // } + // resolve(); + // }) + return this.toastProvider.setAlert("Data will be Lost","Are you sure want to Go Back").then(data=>{ + if(data == false){ + // reject(); + return false; + } + else{ + // resolve(); + return true; + } + + }) + // }) + + } +} diff --git a/src/app/services/database/database.ts b/src/app/services/database/database.ts new file mode 100755 index 0000000..2f0ea5d --- /dev/null +++ b/src/app/services/database/database.ts @@ -0,0 +1,53 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { SQLite, SQLiteObject } from'@ionic-native/sqlite/ngx'; +/* + Generated class for the DatabaseProvider provider. + + See https://angular.io/guide/dependency-injection for more info on providers + and Angular DI. +*/ +@Injectable({ + providedIn: 'root' +}) +export class DatabaseProvider { + database:SQLiteObject; + constructor(public http: HttpClient,public sql:SQLite) { + console.log('Hello DatabaseProvider Provider'); + // this.createnewdb(); + } + + createnewdb() + { + // alert('function in'); + this.sql.create( + { + name:'sinnedge', + location:'defalut', + }).then((db:SQLiteObject)=> + { + db.executeSql('CREATE TABLE IF NOT EXISTS expense(rowid INTEGER PRIMARY KEY, date TEXT, type TEXT, description TEXT, amount INT)').then(res => + { + // alert('db create'); + this.getuserDetails(); + }) + .catch(e => console.log(e)); + }) + } + getuserDetails() + { + // alert('getusers'); + this.sql.create( + { + name:'sineedge', + location:'default', + }).then((db:SQLiteObject)=> + { + db.executeSql('select * from expense ORDER BY rowid DESC').then((res)=> + { + console.log(res); + }) + }) + } + +} diff --git a/src/app/services/pdtrigger/pdtrigger.ts b/src/app/services/pdtrigger/pdtrigger.ts new file mode 100755 index 0000000..f46b207 --- /dev/null +++ b/src/app/services/pdtrigger/pdtrigger.ts @@ -0,0 +1,106 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import {ConstantsProvider} from '../constants/constants'; +import { Observable } from 'rxjs'; +// import { errorHandler } from '@angular/platform-browser/src/browser'; + +/* + Generated class for the PdtriggerProvider provider. + + See https://angular.io/guide/dependency-injection for more info on providers + and Angular DI. +*/ + +// const apiurl = 'http://ssa.sineedge.com/sparqapi/api/' +@Injectable({ + providedIn: 'root' +}) +export class PdtriggerProvider { + apiurl:any; + constructor(public http: HttpClient,public constants:ConstantsProvider) { + this.apiurl = constants.environment(); + this.apiurl=this.apiurl.url + console.log('Hello PdtriggerProvider Provider'); + } + + + + /**get dropdonw list */ + + /**Get list of PD Trigger */ + + getpddetails(userid) + { + console.log(userid); + return this.http.get(this.apiurl+'listLessPDDetails/get?vendor_pdofficer='+userid); + } + + getFullPDdetails(pdid) + { + return this.http.post(this.apiurl+'getFullPDDetails',pdid); + } + + // OLD ONE FOR PD OFFICER + + // updatepdStatus(dataStatus) + // { + // let records = {'records':dataStatus}; + // return this.http.post(this.apiurl+'updatePDMaster',records); + // } + + updatepdStatus(params) + { + let records = {'records':params}; + return this.http.post(this.apiurl+'updateVendorStatus',records); + } + + updateSchedule(updateData){ + return this.http.post(this.apiurl + "schdulePD", { "records": updateData }) + } + + /** To get SMS Link + * List PD + */ + smsLink(params): Observable { + return this.http.post(this.apiurl + 'sendCusLinkViaSMS', params) + } + + saveCurrentLocation(data) + { + // let records = {'records':data}; + return this.http.post(this.apiurl+'savePDOfficerCurrentLocation',data); + } + + checkotp(otpDetails) + { + + let records = {'records':otpDetails}; + + return this.http.post(this.apiurl+'checkOTP',records); + } + getPDCompleteDetails(details){ + return this.http.post(this.apiurl+'getPDCompleteDetails',{'records':details}) + } + pdFormsCompletenessCheck(pd_id){ + return this.http.post(this.apiurl+'pdFormsCompletenessCheck',{'pd_id':pd_id,'client':'MOB'}) + } + updateNotificationToken(value){ + return this.http.post(this.apiurl+'updateNotificationToken',{'records':value}) + } + savePDRemark(values){ + return this.http.post(this.apiurl+'savePDRemark',values); + } + getQCLenderRemarks(values){ + return this.http.post(this.apiurl+'getQCLenderRemarks',{records:{'pd_id':values.pd_id,'flag':values.flag}}) +} + //FOR CHECKING APP VERSION + checkAppVersion(){ + return this.http.get(this.apiurl+'checkAppVersion/get?client=MOB') + } + advancedFilter(params):Observable{ + return this.http.post(this.apiurl+'filterPDList',{records:params}) + } + getCommonConfig(){ + return this.http.post(this.apiurl+'getCommonConfig','') + } +} diff --git a/src/app/services/question-category/question-category.ts b/src/app/services/question-category/question-category.ts new file mode 100755 index 0000000..9f58ba9 --- /dev/null +++ b/src/app/services/question-category/question-category.ts @@ -0,0 +1,290 @@ +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { ConstantsProvider } from '../constants/constants'; +import { Observable } from 'rxjs'; + +import {CacheService} from 'ionic-cache' +import { AwsServiceProvider } from '../aws-service/aws-service'; +import { StorageProvider } from '../storage/storage'; +import { map, catchError } from 'rxjs/operators'; + +/* + Generated class for the QuestionCategoryProvider provider. + + See https://angular.io/guide/dependency-injection for more info on providers + and Angular DI. +*/ +const ttl = 60 * 60 * 24 * 7; +@Injectable({ + providedIn: 'root' +}) + +export class QuestionCategoryProvider { +apiurl:any; +public salaried_primary_key:string='' + constructor(private _aws: AwsServiceProvider,public http: HttpClient,public constant:ConstantsProvider,private cache:CacheService,private ionicStrorageService:StorageProvider) { + console.log('Hello QuestionCategoryProvider Provider'); + this.apiurl = constant.environment(); + this.apiurl=this.apiurl.url + console.log("a",this.apiurl); + } + + + getLoadTemplate(pdid,random_string) + { + return this.http.get(this.apiurl+'loadFullTemplate?pd_id='+pdid+'&random_string='+random_string+'&api=MOB'); + } + saveQusetion(saveData) + { + let records = {'records':[saveData]}; + return this.http.post(this.apiurl+'savePDQuestions',records); + } + + + getAnswerTemplate(qustDetails) + { + return this.http.post(this.apiurl+'getAnswersForPD',qustDetails); + } + + /*** + * Get PD Questions dropdown api + * sriram + */ + getcommondrop(tableName) + { + + // return Observable.defer(()=>{ + let masters = {'master_name':tableName} + // let cacheid=tableName + // return this.http.post(this.apiurl+'getListOfMaster',masters); + // let data= this.http.post(this.apiurl+'getListOfMaster',masters); + //return this.cache.loadFromDelayedObservable(cacheid,data,'we',1,'all','d') + // }) + let cacheKey=tableName + let request=this.http.post(this.apiurl+'getListOfMaster',masters); + return this.cache.loadFromObservable(cacheKey,request,'masters',ttl); + } + + saveForm(records) + { let record = {'records':records}; + return this.http.post(this.apiurl+'savePDFormDetails',record); + } + + retiverForm(records) + { + return this.http.post(this.apiurl+'getPDFormDetails',records); + } + + removeProperty(params): Observable { + params.fk_createdby = this._aws.getlocale(); + return this.http.post(this.apiurl + 'deactiveFormData', { "records": params }) + + } + getPropertyCount(params :any): Observable { + console.log('service params',params) + return this.http.get(this.apiurl + 'getNextRentalCount?pdid=' +params) + +} + + /**Assessed Form Details API */ + saveassessedForms(api,saveData) + { + return this.http.post(this.apiurl+api,saveData); + } + + retiverassessedForm(api,records) + { + console.log("rec",records) + return this.http.post(this.apiurl+api,records); + } + + updatePdApplicant(editData: any) { + // editData.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this.http.post(this.apiurl + "updatePDApplicants", {"pd_applicant_details": editData}) + + +} + +getEndUseForLoan(pdid:any,subproduct){ + return this.http.post(this.apiurl+ "getEndUseOfLoan",{ "records":{ "pd_id" : pdid,"sub_product_id":subproduct}}) +} +getCompaniesListsForBusiness(pdid:any){ + // let cacheKey='getCompaniesListsForBusiness' + return this.http.post(this.apiurl+ "getCompaniesListsForBusiness", { "records":{ "pd_id" : pdid}}) +// console.log("pro",this.cache.loadFromObservable(cacheKey,request)) +// return this.cache.loadFromObservable(cacheKey,request,'companies') +} +getStateWiseCities(stateid:any){ + let cacheKey='getListOfStatesAndCities-'+stateid + let request= this.http.post(this.apiurl + "getListOfStatesAndCities", { "records":{ "state_id" : stateid}}) + return this.cache.loadFromObservable(cacheKey,request,'cityandpincode',ttl); + // return this.http.post(this.apiurl + "getListOfStatesAndCities", { "records":{ "state_id" : stateid}}) +} +getAllPersonsName(pdid:any){ + return this.http.post(this.apiurl + "getAllPersonsName", {"pd_id" : pdid}) + +} +getStateCityDetails(){ + return this.http.post(this.apiurl + "getListOfStatesCities","") +} +getAssetsWithLoanFromBusiness(pdid:any){ + return this.http.post(this.apiurl + "getAssetsWithLoanFromBusiness",{ "pd_id" : pdid}) + +} + + +getTypeofActivityForSuppliedInfoForm(pd_id: any,company_id:any){ + return this.http.post(this.apiurl+"getTypeOfActivetyFromBusinessForm", {"records": { "pd_id" : pd_id,"company_id":company_id }}); +} + +/** For Stock Details + * To Get The Products With TypeofActivity From Business + **/ +stockFormAccess(pdid: any,companyid: any) { + // { "pd_id":"104","company_id":"1"} + return this.http.post(this.apiurl + "getProductsFromBusiness", {"pd_id" : pdid ,"company_id":companyid }); +} + + + +/*****Save Images */ +savePDImages(imagesDetails) +{ + console.log('savepdimg',imagesDetails); + let record = {'records':imagesDetails}; + return this.http.post(this.apiurl+'savePDPhotos',record).pipe( + map(response=>{ + console.log('img response',response); + this.checkSavedPics(response['dataStatus'],imagesDetails) + console.log('check Img',this.checkSavedPics); + return response; + },err=>{ + console.log("Error in savePDImages",err) + this.checkSavedPics('',imagesDetails) + // return err + }) + ) +} +getPDImages(records){ + let record={'records':records}; + return this.http.post(this.apiurl+'getPDImages',record) + // .map(response=>{ + // console.log(response); + // this.checkSavedPics(response['dataStatus'],records) + // return response; + // },err=>{ + + // }) +} +getFamilyDetails(pdid:any){ + return this.http.post(this.apiurl+'getFamilyDetails',{"pd_id":pdid}) +} +checkSavedPics(response,sended_param){ + console.log("checkSavedPics",response,sended_param); + this.ionicStrorageService.getItem('pd_images').then(local_arr=>{ + switch(response){ + case true: + if(local_arr){ + console.log("local pics",local_arr) + let checked= local_arr.filter((val,index)=>{ + if(val.form_value.length > 0){ + let curr_form_value=val.form_value.filter(form_val=>form_val.Name != sended_param.images[0].Name) + console.log("filtered",curr_form_value); + if(curr_form_value.length > 0){ + val.form_value=curr_form_value + // alert("Updated") + return val + + } + else{ + val.form_value=[] + // alert("Deleted") + return val; + } + } + }) + if(checked.length > 0){ + this.ionicStrorageService.updateImagesLocally(checked[0]); + } + console.log(checked[0]); + } + + break; + case false || '' : + if(local_arr){ + let checked= local_arr.filter((val,index)=>{ + if(val.form_value.length > 0){ + let curr_form_value=val.form_value.filter(form_val=>form_val.Name == sended_param.images[0].Name) + console.log("Error filtered",curr_form_value); + if(curr_form_value.length > 0){ + curr_form_value[0].isLoader=false; + curr_form_value[0].isSaved=false; + // alert("Updated status") + return val + } + else{ + // alert("Deleted status") + return; + } + } + }) + if(checked.length > 0){ + this.ionicStrorageService.updateImagesLocally(checked[0]); + } + console.log(checked); + } + break; +} +}) +} +getAddressDetails(pdid:any){ + return this.http.post(this.apiurl+'getPDAddress',{'pd_id':pdid}) +} +getStateCityNamesAndPincode(values:any){ + return this.http.post(this.apiurl+'getStateCityNamesAndPincode',{'records':values}) +} + // get customers list +getCustomersDetails(): Observable { + return this.http.get(this.apiurl + 'getListOfCustomerSegments') + + } + //AI Purchase Calculation + saveAssessedIncomePurchaseDeclaredByCustomer(data){ + return this.http.post(this.apiurl+'saveAssessedIncomePurchaseDeclaredByCustomer',{records:data}) + } + + //FOR GENERAL FORM APPLICANT SAVE + saveApplicantFromGeneralForm(datas){ + return this.http.post(this.apiurl+'saveApplicantFromGeneralForm',datas) + } + + //FOR SALRIED CHECK FLAG TO CHANGE THE QUES TEMPLATE + putSalCheck(params){ + params.id=this.salaried_primary_key //FOR UPDATING THE DATA + return this.http.post(this.apiurl+'putSalCheck',{records:params}) + } + + getAllQuesSample() { + return this.http.get('../../assets/sample_data.json') + } + + // FOR VENDOR ONLY + + saveApplicantImgFromVendorForm(params) { + let userId= this._aws.getlocale(); + params.fk_createdby= userId + return this.http.post(this.apiurl+'saveApplicantImgFromVendorForm',params) + } + getBusinessDocsToVendorForm(editId) { + const options = editId ? + { params: new HttpParams().set('pdid', editId) } : {}; + return this.http.get(this.apiurl+'getBusinessDocsToVendorForm',options) + // .pipe() +} + renewSatellite(params) { + return this.http.post(this.apiurl+'renewSatellite',{records:params}) + } + +} + diff --git a/src/app/services/storage/storage.ts b/src/app/services/storage/storage.ts new file mode 100755 index 0000000..d1a035b --- /dev/null +++ b/src/app/services/storage/storage.ts @@ -0,0 +1,162 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import {Storage} from '@ionic/storage' +import {ToastProvider} from '../common-provider/toast' + +/* + Generated class for the StorageProvider provider. + + See https://angular.io/guide/dependency-injection for more info on providers + and Angular DI. +*/ +//const storage_key='form_Datas' + +@Injectable({ + providedIn: 'root' +}) +export class StorageProvider { + + constructor(public http: HttpClient,public storage:Storage,public toast:ToastProvider) { + console.log('Hello StorageProvider Provider'); + } +insertData(data){ + // this.toast.pdTriggerappmessage(this.storage.driver); + const storage_key=data.pd_id + console.log("storage provider") + console.log(data); + console.log(JSON.stringify(data)); + + console.log("sto",this.storage.get(storage_key)) + return this.storage.get(storage_key).then((res)=>{ + console.log("res",res) + if(res != null ){ + let option:boolean=false + if( res.length != 0 && res.length != undefined){ + // res.forEach((value)=>{ + // if(value.form_id==data.form_id){ + // option=true + // } + // }) + let current=res.filter(val=>val.form_id==data.form_id) + console.log("current",current); + if(current.length > 0){ + let value:any=[] + value.push(data) + return this.storage.set(storage_key,value) + } +} + let old_Data:any=[] + old_Data=res + console.log("old data",old_Data) + old_Data.push(data) + return this.storage.set(storage_key,old_Data) + + } + else{ + //res.push(data) + // let dataValue=Object.keys(data).map(function(key){ + // return data[key]; + // }) + let value:any=[] + value.push(data) + return this.storage.set(storage_key,value) + } + }) + + + +} + +insertPDImageLocally(data){ + // this.toast.pdTriggerappmessage(this.storage.driver); + const storage_key=data.storage_key + console.log("storage provider") + console.log(data); + console.log(JSON.stringify(data)); + + console.log("sto",this.storage.get(storage_key)) + return this.storage.get(storage_key).then((res)=>{ + console.log("res",res) + if(res != null ){ + + if( res.length != 0 && res.length != undefined){ + // res.forEach((value)=>{ + // if(value.form_id==data.form_id){ + // option=true + // } + // }) + let current_form=res.filter(val=>val.form_id!=data.form_id) + console.log("current",current_form); + if(current_form.length > 0){ + let value:any=current_form + let temp={form_id:data.form_id,form_value:data.img_bucket} + value.push(temp) + return this.storage.set(storage_key,value) + } +} + // let old_Data:any=[] + // old_Data=res + // console.log("old data",old_Data) + // old_Data.push(data) + // return this.storage.set(storage_key,old_Data) + + } + else{ + //res.push(data) + // let dataValue=Object.keys(data).map(function(key){ + // return data[key]; + // }) + let value:any=[] + let temp={form_id:data.form_id,form_value:data.img_bucket} + value.push(temp) + return this.storage.set(storage_key,value) + } + }) + + + +} + +updateImagesLocally(data){ + let storage_key='pd_images' + this.getItem(storage_key).then(result=>{ + if(result){ + let filter_result=result.filter(val=>val.form_id != data.form_id) + filter_result.push(data) + return this.storage.set(storage_key,filter_result); + } + }) +} +retrieveLocalStorage(data){ + const storage_key=data.pd_id + return this.storage.get(storage_key).then(res=>{ + console.log("storage get",res) + if(res != null){ + return res.filter(val=>val.form_id==data.form_id) + + } + }) +} +getItem(storage_key){ + return this.storage.get(storage_key).then(res=>{ + return res; + }) +} +setItem(data,storage_key){ + // this.getItem(storage_key).then(old_data=>{ + // let value + // if(old_data){ + // value=old_data+data + // } + // else{ + // value=data + // } + // this.storage.set(storage_key,value) + // }) + this.storage.set(storage_key,data); + +} +clearItem(storage_key){ + this.storage.remove(storage_key) +} +} diff --git a/src/app/shared/directives/hide-header.directive.spec.ts b/src/app/shared/directives/hide-header.directive.spec.ts new file mode 100755 index 0000000..0a12e3d --- /dev/null +++ b/src/app/shared/directives/hide-header.directive.spec.ts @@ -0,0 +1,8 @@ +import { HideHeaderDirective } from './hide-header.directive'; + +describe('HideHeaderDirective', () => { + it('should create an instance', () => { + const directive = new HideHeaderDirective(); + expect(directive).toBeTruthy(); + }); +}); diff --git a/src/app/shared/directives/hide-header.directive.ts b/src/app/shared/directives/hide-header.directive.ts new file mode 100755 index 0000000..26d0804 --- /dev/null +++ b/src/app/shared/directives/hide-header.directive.ts @@ -0,0 +1,40 @@ +import { Directive, Input, Renderer2, HostListener } from '@angular/core'; +import { DomController } from '@ionic/angular'; + +@Directive({ + selector: '[appHideHeader]' +}) +export class HideHeaderDirective { + @Input('header') header: any; + + private lastY = 0; + + constructor( + private renderer: Renderer2, + private domCtrl: DomController + ) { } + + ngOnInit(): void { + console.log("ionScroll ng OnInit") + this.header = this.header.el; + this.domCtrl.write(() => { + this.renderer.setStyle(this.header, 'transition', 'margin-top 700ms'); + }); + } + + @HostListener('ionScroll', ['$event']) onContentScroll($event: any) { + console.log("ionScroll") + if ($event.detail.scrollTop > this.lastY) { + this.domCtrl.write(() => { + this.renderer.setStyle(this.header, 'margin-top', `-${ this.header.clientHeight }px`); + }); + } else { + this.domCtrl.write(() => { + this.renderer.setStyle(this.header, 'margin-top', '0'); + }); + } + + this.lastY = $event.detail.scrollTop; + } + +} diff --git a/src/app/shared/material-module/material-module.module.ts b/src/app/shared/material-module/material-module.module.ts new file mode 100755 index 0000000..3544b8c --- /dev/null +++ b/src/app/shared/material-module/material-module.module.ts @@ -0,0 +1,58 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; +import { MatButtonModule, MatFormFieldModule, MatCardModule, MatInputModule, MatSelectModule, MatDialogModule, MatRadioModule, MatSlideToggle, MatSlideToggleModule, MatListModule, MatExpansionModule, MatCheckboxModule, MatDatepickerModule, MatIconModule } from '@angular/material'; +import { IonicModule } from '@ionic/angular'; +import { RupeeCurrencyFormatPipe } from 'src/app/pipes/rupee-currency-format/rupee-currency-format'; +import { HideHeaderDirective } from '../directives/hide-header.directive'; + + + +@NgModule({ + declarations: [RupeeCurrencyFormatPipe , HideHeaderDirective], + imports: [ + CommonModule, + ReactiveFormsModule, + FormsModule, + MatButtonModule, + MatFormFieldModule, + MatCardModule, + MatInputModule, + MatSelectModule, + IonicModule, + MatDialogModule, + MatRadioModule, + MatSlideToggleModule, + MatListModule, + MatExpansionModule, + MatCheckboxModule, + MatDatepickerModule, + MatIconModule, + + ], + exports: [ + CommonModule, + ReactiveFormsModule, + FormsModule, + MatButtonModule, + MatFormFieldModule, + MatCardModule, + MatInputModule, + MatSelectModule, + IonicModule, + MatDialogModule, + MatRadioModule, + MatSlideToggleModule, + MatListModule, + MatExpansionModule, + MatCheckboxModule, + MatDatepickerModule, + MatIconModule, + + // PIPES AND DIRECTIVES + + RupeeCurrencyFormatPipe, + HideHeaderDirective + ] +}) +export class MaterialModuleModule { } diff --git a/src/assets/css/deeppurple-amber.css b/src/assets/css/deeppurple-amber.css new file mode 100755 index 0000000..f0c9650 --- /dev/null +++ b/src/assets/css/deeppurple-amber.css @@ -0,0 +1 @@ +.mat-elevation-z0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-elevation-z1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mat-elevation-z2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-elevation-z3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mat-elevation-z4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-elevation-z5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.mat-elevation-z6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-elevation-z7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.mat-elevation-z8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-elevation-z9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.mat-elevation-z10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.mat-elevation-z11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.mat-elevation-z12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-elevation-z13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.mat-elevation-z14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.mat-elevation-z15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.mat-elevation-z16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mat-elevation-z17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.mat-elevation-z18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.mat-elevation-z19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.mat-elevation-z20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.mat-elevation-z21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.mat-elevation-z22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.mat-elevation-z23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.mat-elevation-z24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h5,.mat-typography h5{font-size:11.62px;font-weight:400;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:20px;margin:0 0 12px}.mat-h6,.mat-typography h6{font-size:9.38px;font-weight:400;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:20px;margin:0 0 12px}.mat-body-2,.mat-body-strong{font:500 14px/24px Roboto,"Helvetica Neue",sans-serif}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-caption,.mat-small{font:400 12px/20px Roboto,"Helvetica Neue",sans-serif}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,"Helvetica Neue",sans-serif;margin:0 0 56px;letter-spacing:-.05em}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px;letter-spacing:-.02em}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px;letter-spacing:-.005em}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px}.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500}.mat-button-toggle{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-card{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-card-title{font-size:24px;font-weight:400}.mat-card-content,.mat-card-header .mat-card-title,.mat-card-subtitle{font-size:14px}.mat-checkbox{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:13px;line-height:18px}.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell{font-size:14px}.mat-calendar{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,"Helvetica Neue",sans-serif}.mat-expansion-panel-header{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-form-field{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:inherit;font-weight:400;line-height:1.125}.mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.4375em 0;border-top:.84375em solid transparent}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.33334%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.33335%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.28125em}.mat-form-field-underline{bottom:1.25em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.54167em;top:calc(100% - 1.66667em)}.mat-grid-tile-footer,.mat-grid-tile-header{font-size:14px}.mat-grid-tile-footer .mat-line,.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2),.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:12px}.mat-radio-button{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-select{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:12px;font-weight:500}.mat-stepper-horizontal,.mat-stepper-vertical{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,"Helvetica Neue",sans-serif;margin:0}.mat-tooltip{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-list-item{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-list-option{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-list .mat-list-item,.mat-nav-list .mat-list-item,.mat-selection-list .mat-list-item{font-size:16px}.mat-list .mat-list-item .mat-line,.mat-nav-list .mat-list-item .mat-line,.mat-selection-list .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list .mat-list-item .mat-line:nth-child(n+2),.mat-nav-list .mat-list-item .mat-line:nth-child(n+2),.mat-selection-list .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list .mat-list-option,.mat-nav-list .mat-list-option,.mat-selection-list .mat-list-option{font-size:16px}.mat-list .mat-list-option .mat-line,.mat-nav-list .mat-list-option .mat-line,.mat-selection-list .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list .mat-list-option .mat-line:nth-child(n+2),.mat-nav-list .mat-list-option .mat-line:nth-child(n+2),.mat-selection-list .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list .mat-subheader,.mat-nav-list .mat-subheader,.mat-selection-list .mat-subheader{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500}.mat-list[dense] .mat-list-item,.mat-nav-list[dense] .mat-list-item,.mat-selection-list[dense] .mat-list-item{font-size:12px}.mat-list[dense] .mat-list-item .mat-line,.mat-nav-list[dense] .mat-list-item .mat-line,.mat-selection-list[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-nav-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-selection-list[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list[dense] .mat-list-option,.mat-nav-list[dense] .mat-list-option,.mat-selection-list[dense] .mat-list-option{font-size:12px}.mat-list[dense] .mat-list-option .mat-line,.mat-nav-list[dense] .mat-list-option .mat-line,.mat-selection-list[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list[dense] .mat-list-option .mat-line:nth-child(n+2),.mat-nav-list[dense] .mat-list-option .mat-line:nth-child(n+2),.mat-selection-list[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list[dense] .mat-subheader,.mat-nav-list[dense] .mat-subheader,.mat-selection-list[dense] .mat-subheader{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,"Helvetica Neue",sans-serif}.mat-simple-snackbar{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-ripple{overflow:hidden}@media screen and (-ms-high-contrast:active){.mat-ripple{display:none}}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0s cubic-bezier(0,0,.2,1);transform:scale(0)}.mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;position:relative;cursor:pointer;outline:0;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}@media screen and (-ms-high-contrast:active){.mat-option-ripple{opacity:.5}}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}.mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.cdk-global-overlay-wrapper,.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.48}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.cdk-overlay-transparent-backdrop{background:0 0}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.mat-ripple-element{background-color:rgba(0,0,0,.1)}.mat-option{color:rgba(0,0,0,.87)}.mat-option:focus:not(.mat-option-disabled),.mat-option:hover:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#673ab7}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#ffd740}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-active{background:rgba(0,0,0,.04);color:rgba(0,0,0,.87)}.mat-option.mat-option-disabled{color:rgba(0,0,0,.38)}.mat-optgroup-label{color:rgba(0,0,0,.54)}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(0,0,0,.38)}.mat-pseudo-checkbox{color:rgba(0,0,0,.54)}.mat-pseudo-checkbox::after{color:#fafafa}.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate,.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate{background:#ffd740}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#673ab7}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#f44336}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-app-background{background-color:#fafafa}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:rgba(0,0,0,.87)}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:rgba(0,0,0,.87)}.mat-button,.mat-icon-button{background:0 0}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay{background-color:rgba(103,58,183,.12)}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay{background-color:rgba(255,215,64,.12)}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay{background-color:rgba(244,67,54,.12)}.mat-button[disabled] .mat-button-focus-overlay,.mat-icon-button[disabled] .mat-button-focus-overlay{background-color:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary{color:#673ab7}.mat-button.mat-accent,.mat-icon-button.mat-accent{color:#ffd740}.mat-button.mat-warn,.mat-icon-button.mat-warn{color:#f44336}.mat-button.mat-accent[disabled],.mat-button.mat-primary[disabled],.mat-button.mat-warn[disabled],.mat-button[disabled][disabled],.mat-icon-button.mat-accent[disabled],.mat-icon-button.mat-primary[disabled],.mat-icon-button.mat-warn[disabled],.mat-icon-button[disabled][disabled]{color:rgba(0,0,0,.26)}.mat-fab,.mat-mini-fab,.mat-raised-button{color:rgba(0,0,0,.87);background-color:#fff}.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{color:#fff}.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{color:rgba(0,0,0,.87)}.mat-fab.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{color:#fff}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{color:rgba(0,0,0,.26)}.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{background-color:#673ab7}.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{background-color:#ffd740}.mat-fab.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{background-color:#f44336}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{background-color:rgba(0,0,0,.12)}.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element{background-color:rgba(255,255,255,.2)}.mat-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element{background-color:rgba(0,0,0,.2)}.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element{background-color:rgba(255,255,255,.2)}.mat-button.mat-primary .mat-ripple-element{background-color:rgba(103,58,183,.1)}.mat-button.mat-accent .mat-ripple-element{background-color:rgba(255,215,64,.1)}.mat-button.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.1)}.mat-icon-button.mat-primary .mat-ripple-element{background-color:rgba(103,58,183,.2)}.mat-icon-button.mat-accent .mat-ripple-element{background-color:rgba(255,215,64,.2)}.mat-icon-button.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.2)}.mat-button-toggle{color:rgba(0,0,0,.38)}.mat-button-toggle.cdk-focused .mat-button-toggle-focus-overlay{background-color:rgba(0,0,0,.12)}.mat-button-toggle-checked{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.mat-button-toggle-disabled{background-color:#eee;color:rgba(0,0,0,.26)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-card{background:#fff;color:rgba(0,0,0,.87)}.mat-card-subtitle{color:rgba(0,0,0,.54)}.mat-checkbox-frame{border-color:rgba(0,0,0,.54)}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa!important}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-checked.mat-primary .mat-checkbox-background,.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#673ab7}.mat-checkbox-checked.mat-accent .mat-checkbox-background,.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#ffd740}.mat-checkbox-checked.mat-warn .mat-checkbox-background,.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:#b0b0b0}.mat-checkbox:not(.mat-checkbox-disabled).mat-primary .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(103,58,183,.26)}.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(255,215,64,.26)}.mat-checkbox:not(.mat-checkbox-disabled).mat-warn .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(244,67,54,.26)}.mat-chip:not(.mat-basic-chip){background-color:#e0e0e0;color:rgba(0,0,0,.87)}.mat-chip:not(.mat-basic-chip) .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip:not(.mat-basic-chip) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-primary{background-color:#673ab7;color:#fff}.mat-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-chip-selected.mat-primary .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-chip-selected.mat-warn .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-accent{background-color:#ffd740;color:rgba(0,0,0,.87)}.mat-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip.mat-chip-selected.mat-accent .mat-chip-remove:hover{opacity:.54}.mat-table{background:#fff}.mat-header-row,.mat-row{border-bottom-color:rgba(0,0,0,.12)}.mat-header-cell{color:rgba(0,0,0,.54)}.mat-cell{color:rgba(0,0,0,.87)}.mat-datepicker-content{background-color:#fff;color:rgba(0,0,0,.87)}.mat-calendar-arrow{border-top-color:rgba(0,0,0,.54)}.mat-calendar-next-button,.mat-calendar-previous-button{color:rgba(0,0,0,.54)}.mat-calendar-table-header{color:rgba(0,0,0,.38)}.mat-calendar-table-header-divider::after{background:rgba(0,0,0,.12)}.mat-calendar-body-label{color:rgba(0,0,0,.54)}.mat-calendar-body-cell-content{color:rgba(0,0,0,.87);border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){color:rgba(0,0,0,.38)}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:rgba(0,0,0,.04)}.mat-calendar-body-selected{background-color:#673ab7;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(103,58,183,.4)}.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,.38)}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,.18)}.mat-dialog-container{background:#fff;color:rgba(0,0,0,.87)}.mat-divider{border-top-color:rgba(0,0,0,.12)}.mat-divider-vertical{border-right-color:rgba(0,0,0,.12)}.mat-expansion-panel{background:#fff;color:rgba(0,0,0,.87)}.mat-action-row{border-top-color:rgba(0,0,0,.12)}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:rgba(0,0,0,.04)}.mat-expansion-panel-header-title{color:rgba(0,0,0,.87)}.mat-expansion-indicator::after,.mat-expansion-panel-header-description{color:rgba(0,0,0,.54)}.mat-expansion-panel-header[aria-disabled=true]{color:rgba(0,0,0,.26)}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.mat-form-field-label{color:rgba(0,0,0,.54)}.mat-hint{color:rgba(0,0,0,.54)}.mat-focused .mat-form-field-label{color:#673ab7}.mat-focused .mat-form-field-label.mat-accent{color:#ffd740}.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ffd740}.mat-form-field-underline{background-color:rgba(0,0,0,.42)}.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x}.mat-form-field-ripple{background-color:#673ab7}.mat-form-field-ripple.mat-accent{background-color:#ffd740}.mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-invalid .mat-form-field-label{color:#f44336}.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker,.mat-form-field-invalid .mat-form-field-label.mat-accent{color:#f44336}.mat-form-field-invalid .mat-form-field-ripple{background-color:#f44336}.mat-error{color:#f44336}.mat-icon.mat-primary{color:#673ab7}.mat-icon.mat-accent{color:#ffd740}.mat-icon.mat-warn{color:#f44336}.mat-input-element:disabled{color:rgba(0,0,0,.38)}.mat-input-element{caret-color:#673ab7}.mat-input-element::placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-moz-placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,.42)}.mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,.42)}.mat-accent .mat-input-element{caret-color:#ffd740}.mat-form-field-invalid .mat-input-element,.mat-warn .mat-input-element{caret-color:#f44336}.mat-list .mat-list-item,.mat-nav-list .mat-list-item,.mat-selection-list .mat-list-item{color:rgba(0,0,0,.87)}.mat-list .mat-list-option,.mat-nav-list .mat-list-option,.mat-selection-list .mat-list-option{color:rgba(0,0,0,.87)}.mat-list .mat-subheader,.mat-nav-list .mat-subheader,.mat-selection-list .mat-subheader{color:rgba(0,0,0,.54)}.mat-list-item-disabled{background-color:#eee}.mat-nav-list .mat-list-item{outline:0}.mat-nav-list .mat-list-item.mat-list-item-focus,.mat-nav-list .mat-list-item:hover{background:rgba(0,0,0,.04)}.mat-list-option{outline:0}.mat-list-option.mat-list-item-focus,.mat-list-option:hover{background:rgba(0,0,0,.04)}.mat-menu-panel{background:#fff}.mat-menu-item{background:0 0;color:rgba(0,0,0,.87)}.mat-menu-item[disabled]{color:rgba(0,0,0,.38)}.mat-menu-item .mat-icon:not([color]),.mat-menu-item-submenu-trigger::after{color:rgba(0,0,0,.54)}.mat-menu-item-highlighted:not([disabled]),.mat-menu-item:focus:not([disabled]),.mat-menu-item:hover:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(0,0,0,.54)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment{border-color:rgba(0,0,0,.38)}.mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27%23d1c4e9%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar-buffer{background-color:#d1c4e9}.mat-progress-bar-fill::after{background-color:#673ab7}.mat-progress-bar.mat-accent .mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27%23ffe57f%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ffe57f}.mat-progress-bar.mat-accent .mat-progress-bar-fill::after{background-color:#ffd740}.mat-progress-bar.mat-warn .mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27%23ffcdd2%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-fill::after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#673ab7}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ffd740}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:rgba(0,0,0,.54)}.mat-radio-disabled .mat-radio-outer-circle{border-color:rgba(0,0,0,.38)}.mat-radio-disabled .mat-radio-inner-circle,.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:rgba(0,0,0,.38)}.mat-radio-disabled .mat-radio-label-content{color:rgba(0,0,0,.38)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#673ab7}.mat-radio-button.mat-primary .mat-radio-inner-circle{background-color:#673ab7}.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element{background-color:rgba(103,58,183,.26)}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ffd740}.mat-radio-button.mat-accent .mat-radio-inner-circle{background-color:#ffd740}.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element{background-color:rgba(255,215,64,.26)}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle{background-color:#f44336}.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element{background-color:rgba(244,67,54,.26)}.mat-select-content,.mat-select-panel-done-animating{background:#fff}.mat-select-value{color:rgba(0,0,0,.87)}.mat-select-placeholder{color:rgba(0,0,0,.42)}.mat-select-disabled .mat-select-value{color:rgba(0,0,0,.38)}.mat-select-arrow{color:rgba(0,0,0,.54)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#673ab7}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ffd740}.mat-form-field.mat-focused.mat-warn .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(0,0,0,.38)}.mat-drawer-container{background-color:#fafafa;color:rgba(0,0,0,.87)}.mat-drawer{background-color:#fff;color:rgba(0,0,0,.87)}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(0,0,0,.6)}.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#ffc107}.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(255,193,7,.5)}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle .mat-ripple-element{background-color:rgba(255,193,7,.12)}.mat-slide-toggle.mat-primary.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#673ab7}.mat-slide-toggle.mat-primary.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(103,58,183,.5)}.mat-slide-toggle.mat-primary:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle.mat-primary .mat-ripple-element{background-color:rgba(103,58,183,.12)}.mat-slide-toggle.mat-warn.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(244,67,54,.5)}.mat-slide-toggle.mat-warn:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.12)}.mat-disabled .mat-slide-toggle-thumb{background-color:#bdbdbd}.mat-disabled .mat-slide-toggle-bar{background-color:rgba(0,0,0,.1)}.mat-slide-toggle-thumb{background-color:#fafafa}.mat-slide-toggle-bar{background-color:rgba(0,0,0,.38)}.mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label,.mat-primary .mat-slider-track-fill{background-color:#673ab7}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label,.mat-accent .mat-slider-track-fill{background-color:#ffd740}.mat-accent .mat-slider-thumb-label-text{color:rgba(0,0,0,.87)}.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label,.mat-warn .mat-slider-track-fill{background-color:#f44336}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider-focus-ring{background-color:rgba(255,215,64,.2)}.cdk-focused .mat-slider-track-background,.mat-slider:hover .mat-slider-track-background{background-color:rgba(0,0,0,.38)}.mat-slider-disabled .mat-slider-thumb,.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill{background-color:rgba(0,0,0,.26)}.mat-slider-disabled:hover .mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(0,0,0,.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:rgba(0,0,0,.87)}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(0,0,0,.26)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(0,0,0,.26);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:rgba(0,0,0,.38)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:rgba(0,0,0,.26)}.mat-slider-has-ticks .mat-slider-wrapper::after{border-color:rgba(0,0,0,.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(0,0,0,.04)}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(0,0,0,.38)}.mat-step-header .mat-step-icon{background-color:#673ab7;color:#fff}.mat-step-header .mat-step-icon-not-touched{background-color:rgba(0,0,0,.38);color:#fff}.mat-step-header .mat-step-label.mat-step-label-active{color:rgba(0,0,0,.87)}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line::before{border-left-color:rgba(0,0,0,.12)}.mat-stepper-horizontal-line{border-top-color:rgba(0,0,0,.12)}.mat-tab-header,.mat-tab-nav-bar{border-bottom:1px solid rgba(0,0,0,.12)}.mat-tab-group-inverted-header .mat-tab-header,.mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.38)}.mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.38)}.mat-tab-group[class*=mat-background-] .mat-tab-header,.mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label:focus,.mat-tab-group.mat-primary .mat-tab-link:focus,.mat-tab-nav-bar.mat-primary .mat-tab-label:focus,.mat-tab-nav-bar.mat-primary .mat-tab-link:focus{background-color:rgba(209,196,233,.3)}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#673ab7}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label:focus,.mat-tab-group.mat-accent .mat-tab-link:focus,.mat-tab-nav-bar.mat-accent .mat-tab-label:focus,.mat-tab-nav-bar.mat-accent .mat-tab-link:focus{background-color:rgba(255,229,127,.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ffd740}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:rgba(0,0,0,.87)}.mat-tab-group.mat-warn .mat-tab-label:focus,.mat-tab-group.mat-warn .mat-tab-link:focus,.mat-tab-nav-bar.mat-warn .mat-tab-label:focus,.mat-tab-nav-bar.mat-warn .mat-tab-link:focus{background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label:focus,.mat-tab-group.mat-background-primary .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-primary .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-primary .mat-tab-link:focus{background-color:rgba(209,196,233,.3)}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#673ab7}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-tab-group.mat-background-accent .mat-tab-label:focus,.mat-tab-group.mat-background-accent .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-accent .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-accent .mat-tab-link:focus{background-color:rgba(255,229,127,.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#ffd740}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:rgba(0,0,0,.12)}.mat-tab-group.mat-background-warn .mat-tab-label:focus,.mat-tab-group.mat-background-warn .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-warn .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-warn .mat-tab-link:focus{background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#f44336}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-toolbar{background:#f5f5f5;color:rgba(0,0,0,.87)}.mat-toolbar.mat-primary{background:#673ab7;color:#fff}.mat-toolbar.mat-accent{background:#ffd740;color:rgba(0,0,0,.87)}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-snack-bar-container{background:#323232;color:#fff}.mat-simple-snackbar-action{color:#ffd740} \ No newline at end of file diff --git a/src/assets/deep.min.css b/src/assets/deep.min.css new file mode 100755 index 0000000..f0c9650 --- /dev/null +++ b/src/assets/deep.min.css @@ -0,0 +1 @@ +.mat-elevation-z0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.mat-elevation-z1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mat-elevation-z2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mat-elevation-z3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.mat-elevation-z4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mat-elevation-z5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.mat-elevation-z6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mat-elevation-z7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.mat-elevation-z8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mat-elevation-z9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.mat-elevation-z10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.mat-elevation-z11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.mat-elevation-z12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mat-elevation-z13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.mat-elevation-z14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.mat-elevation-z15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.mat-elevation-z16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mat-elevation-z17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.mat-elevation-z18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.mat-elevation-z19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.mat-elevation-z20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.mat-elevation-z21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.mat-elevation-z22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.mat-elevation-z23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.mat-elevation-z24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,"Helvetica Neue",sans-serif;margin:0 0 16px}.mat-h5,.mat-typography h5{font-size:11.62px;font-weight:400;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:20px;margin:0 0 12px}.mat-h6,.mat-typography h6{font-size:9.38px;font-weight:400;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:20px;margin:0 0 12px}.mat-body-2,.mat-body-strong{font:500 14px/24px Roboto,"Helvetica Neue",sans-serif}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-body p,.mat-body-1 p,.mat-typography p{margin:0 0 12px}.mat-caption,.mat-small{font:400 12px/20px Roboto,"Helvetica Neue",sans-serif}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,"Helvetica Neue",sans-serif;margin:0 0 56px;letter-spacing:-.05em}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px;letter-spacing:-.02em}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px;letter-spacing:-.005em}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,"Helvetica Neue",sans-serif;margin:0 0 64px}.mat-button,.mat-fab,.mat-icon-button,.mat-mini-fab,.mat-raised-button{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500}.mat-button-toggle{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-card{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-card-title{font-size:24px;font-weight:400}.mat-card-content,.mat-card-header .mat-card-title,.mat-card-subtitle{font-size:14px}.mat-checkbox{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:13px;line-height:18px}.mat-chip .mat-chip-remove.mat-icon{font-size:18px}.mat-table{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell{font-size:14px}.mat-calendar{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,"Helvetica Neue",sans-serif}.mat-expansion-panel-header{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-form-field{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:inherit;font-weight:400;line-height:1.125}.mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{padding:.4375em 0;border-top:.84375em solid transparent}.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label,.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);-ms-transform:translateY(-1.28125em) scale(.75);width:133.33333%}.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);-ms-transform:translateY(-1.28124em) scale(.75);width:133.33334%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);-ms-transform:translateY(-1.28123em) scale(.75);width:133.33335%}.mat-form-field-label-wrapper{top:-.84375em;padding-top:.84375em}.mat-form-field-label{top:1.28125em}.mat-form-field-underline{bottom:1.25em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.54167em;top:calc(100% - 1.66667em)}.mat-grid-tile-footer,.mat-grid-tile-header{font-size:14px}.mat-grid-tile-footer .mat-line,.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2),.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:12px}.mat-radio-button{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-select{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content{font:400 14px/20px Roboto,"Helvetica Neue",sans-serif}.mat-slider-thumb-label-text{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:12px;font-weight:500}.mat-stepper-horizontal,.mat-stepper-vertical{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-tab-label,.mat-tab-link{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,"Helvetica Neue",sans-serif;margin:0}.mat-tooltip{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:10px;padding-top:6px;padding-bottom:6px}.mat-list-item{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-list-option{font-family:Roboto,"Helvetica Neue",sans-serif}.mat-list .mat-list-item,.mat-nav-list .mat-list-item,.mat-selection-list .mat-list-item{font-size:16px}.mat-list .mat-list-item .mat-line,.mat-nav-list .mat-list-item .mat-line,.mat-selection-list .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list .mat-list-item .mat-line:nth-child(n+2),.mat-nav-list .mat-list-item .mat-line:nth-child(n+2),.mat-selection-list .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list .mat-list-option,.mat-nav-list .mat-list-option,.mat-selection-list .mat-list-option{font-size:16px}.mat-list .mat-list-option .mat-line,.mat-nav-list .mat-list-option .mat-line,.mat-selection-list .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list .mat-list-option .mat-line:nth-child(n+2),.mat-nav-list .mat-list-option .mat-line:nth-child(n+2),.mat-selection-list .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list .mat-subheader,.mat-nav-list .mat-subheader,.mat-selection-list .mat-subheader{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px;font-weight:500}.mat-list[dense] .mat-list-item,.mat-nav-list[dense] .mat-list-item,.mat-selection-list[dense] .mat-list-item{font-size:12px}.mat-list[dense] .mat-list-item .mat-line,.mat-nav-list[dense] .mat-list-item .mat-line,.mat-selection-list[dense] .mat-list-item .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-nav-list[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-selection-list[dense] .mat-list-item .mat-line:nth-child(n+2){font-size:12px}.mat-list[dense] .mat-list-option,.mat-nav-list[dense] .mat-list-option,.mat-selection-list[dense] .mat-list-option{font-size:12px}.mat-list[dense] .mat-list-option .mat-line,.mat-nav-list[dense] .mat-list-option .mat-line,.mat-selection-list[dense] .mat-list-option .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-list[dense] .mat-list-option .mat-line:nth-child(n+2),.mat-nav-list[dense] .mat-list-option .mat-line:nth-child(n+2),.mat-selection-list[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list[dense] .mat-subheader,.mat-nav-list[dense] .mat-subheader,.mat-selection-list[dense] .mat-subheader{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,"Helvetica Neue",sans-serif}.mat-simple-snackbar{font-family:Roboto,"Helvetica Neue",sans-serif;font-size:14px}.mat-simple-snackbar-action{line-height:1;font-family:inherit;font-size:inherit;font-weight:500}.mat-ripple{overflow:hidden}@media screen and (-ms-high-contrast:active){.mat-ripple{display:none}}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0s cubic-bezier(0,0,.2,1);transform:scale(0)}.mat-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;position:relative;cursor:pointer;outline:0;display:flex;flex-direction:row;max-width:100%;box-sizing:border-box;align-items:center}.mat-option[disabled]{cursor:default}[dir=rtl] .mat-option{text-align:right}.mat-option .mat-icon{margin-right:16px}[dir=rtl] .mat-option .mat-icon{margin-left:16px;margin-right:0}.mat-option[aria-disabled=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:32px}[dir=rtl] .mat-optgroup .mat-option:not(.mat-option-multiple){padding-left:16px;padding-right:32px}.mat-option-text{display:inline-block;flex-grow:1;overflow:hidden;text-overflow:ellipsis}.mat-option-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}@media screen and (-ms-high-contrast:active){.mat-option-ripple{opacity:.5}}.mat-option-pseudo-checkbox{margin-right:8px}[dir=rtl] .mat-option-pseudo-checkbox{margin-left:8px;margin-right:0}.mat-optgroup-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:48px;height:48px;padding:0 16px;text-align:left;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.mat-optgroup-label[disabled]{cursor:default}[dir=rtl] .mat-optgroup-label{text-align:right}.mat-optgroup-label .mat-icon{margin-right:16px}[dir=rtl] .mat-optgroup-label .mat-icon{margin-left:16px;margin-right:0}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.cdk-global-overlay-wrapper,.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.48}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.cdk-overlay-transparent-backdrop{background:0 0}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.mat-ripple-element{background-color:rgba(0,0,0,.1)}.mat-option{color:rgba(0,0,0,.87)}.mat-option:focus:not(.mat-option-disabled),.mat-option:hover:not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-primary .mat-option.mat-selected:not(.mat-option-disabled){color:#673ab7}.mat-accent .mat-option.mat-selected:not(.mat-option-disabled){color:#ffd740}.mat-warn .mat-option.mat-selected:not(.mat-option-disabled){color:#f44336}.mat-option.mat-selected:not(.mat-option-multiple):not(.mat-option-disabled){background:rgba(0,0,0,.04)}.mat-option.mat-active{background:rgba(0,0,0,.04);color:rgba(0,0,0,.87)}.mat-option.mat-option-disabled{color:rgba(0,0,0,.38)}.mat-optgroup-label{color:rgba(0,0,0,.54)}.mat-optgroup-disabled .mat-optgroup-label{color:rgba(0,0,0,.38)}.mat-pseudo-checkbox{color:rgba(0,0,0,.54)}.mat-pseudo-checkbox::after{color:#fafafa}.mat-accent .mat-pseudo-checkbox-checked,.mat-accent .mat-pseudo-checkbox-indeterminate,.mat-pseudo-checkbox-checked,.mat-pseudo-checkbox-indeterminate{background:#ffd740}.mat-primary .mat-pseudo-checkbox-checked,.mat-primary .mat-pseudo-checkbox-indeterminate{background:#673ab7}.mat-warn .mat-pseudo-checkbox-checked,.mat-warn .mat-pseudo-checkbox-indeterminate{background:#f44336}.mat-pseudo-checkbox-checked.mat-pseudo-checkbox-disabled,.mat-pseudo-checkbox-indeterminate.mat-pseudo-checkbox-disabled{background:#b0b0b0}.mat-app-background{background-color:#fafafa}.mat-theme-loaded-marker{display:none}.mat-autocomplete-panel{background:#fff;color:rgba(0,0,0,.87)}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover){background:#fff}.mat-autocomplete-panel .mat-option.mat-selected:not(.mat-active):not(:hover):not(.mat-option-disabled){color:rgba(0,0,0,.87)}.mat-button,.mat-icon-button{background:0 0}.mat-button.mat-primary .mat-button-focus-overlay,.mat-icon-button.mat-primary .mat-button-focus-overlay{background-color:rgba(103,58,183,.12)}.mat-button.mat-accent .mat-button-focus-overlay,.mat-icon-button.mat-accent .mat-button-focus-overlay{background-color:rgba(255,215,64,.12)}.mat-button.mat-warn .mat-button-focus-overlay,.mat-icon-button.mat-warn .mat-button-focus-overlay{background-color:rgba(244,67,54,.12)}.mat-button[disabled] .mat-button-focus-overlay,.mat-icon-button[disabled] .mat-button-focus-overlay{background-color:transparent}.mat-button.mat-primary,.mat-icon-button.mat-primary{color:#673ab7}.mat-button.mat-accent,.mat-icon-button.mat-accent{color:#ffd740}.mat-button.mat-warn,.mat-icon-button.mat-warn{color:#f44336}.mat-button.mat-accent[disabled],.mat-button.mat-primary[disabled],.mat-button.mat-warn[disabled],.mat-button[disabled][disabled],.mat-icon-button.mat-accent[disabled],.mat-icon-button.mat-primary[disabled],.mat-icon-button.mat-warn[disabled],.mat-icon-button[disabled][disabled]{color:rgba(0,0,0,.26)}.mat-fab,.mat-mini-fab,.mat-raised-button{color:rgba(0,0,0,.87);background-color:#fff}.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{color:#fff}.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{color:rgba(0,0,0,.87)}.mat-fab.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{color:#fff}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{color:rgba(0,0,0,.26)}.mat-fab.mat-primary,.mat-mini-fab.mat-primary,.mat-raised-button.mat-primary{background-color:#673ab7}.mat-fab.mat-accent,.mat-mini-fab.mat-accent,.mat-raised-button.mat-accent{background-color:#ffd740}.mat-fab.mat-warn,.mat-mini-fab.mat-warn,.mat-raised-button.mat-warn{background-color:#f44336}.mat-fab.mat-accent[disabled],.mat-fab.mat-primary[disabled],.mat-fab.mat-warn[disabled],.mat-fab[disabled][disabled],.mat-mini-fab.mat-accent[disabled],.mat-mini-fab.mat-primary[disabled],.mat-mini-fab.mat-warn[disabled],.mat-mini-fab[disabled][disabled],.mat-raised-button.mat-accent[disabled],.mat-raised-button.mat-primary[disabled],.mat-raised-button.mat-warn[disabled],.mat-raised-button[disabled][disabled]{background-color:rgba(0,0,0,.12)}.mat-fab.mat-primary .mat-ripple-element,.mat-mini-fab.mat-primary .mat-ripple-element,.mat-raised-button.mat-primary .mat-ripple-element{background-color:rgba(255,255,255,.2)}.mat-fab.mat-accent .mat-ripple-element,.mat-mini-fab.mat-accent .mat-ripple-element,.mat-raised-button.mat-accent .mat-ripple-element{background-color:rgba(0,0,0,.2)}.mat-fab.mat-warn .mat-ripple-element,.mat-mini-fab.mat-warn .mat-ripple-element,.mat-raised-button.mat-warn .mat-ripple-element{background-color:rgba(255,255,255,.2)}.mat-button.mat-primary .mat-ripple-element{background-color:rgba(103,58,183,.1)}.mat-button.mat-accent .mat-ripple-element{background-color:rgba(255,215,64,.1)}.mat-button.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.1)}.mat-icon-button.mat-primary .mat-ripple-element{background-color:rgba(103,58,183,.2)}.mat-icon-button.mat-accent .mat-ripple-element{background-color:rgba(255,215,64,.2)}.mat-icon-button.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.2)}.mat-button-toggle{color:rgba(0,0,0,.38)}.mat-button-toggle.cdk-focused .mat-button-toggle-focus-overlay{background-color:rgba(0,0,0,.12)}.mat-button-toggle-checked{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.mat-button-toggle-disabled{background-color:#eee;color:rgba(0,0,0,.26)}.mat-button-toggle-disabled.mat-button-toggle-checked{background-color:#bdbdbd}.mat-card{background:#fff;color:rgba(0,0,0,.87)}.mat-card-subtitle{color:rgba(0,0,0,.54)}.mat-checkbox-frame{border-color:rgba(0,0,0,.54)}.mat-checkbox-checkmark{fill:#fafafa}.mat-checkbox-checkmark-path{stroke:#fafafa!important}.mat-checkbox-mixedmark{background-color:#fafafa}.mat-checkbox-checked.mat-primary .mat-checkbox-background,.mat-checkbox-indeterminate.mat-primary .mat-checkbox-background{background-color:#673ab7}.mat-checkbox-checked.mat-accent .mat-checkbox-background,.mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#ffd740}.mat-checkbox-checked.mat-warn .mat-checkbox-background,.mat-checkbox-indeterminate.mat-warn .mat-checkbox-background{background-color:#f44336}.mat-checkbox-disabled.mat-checkbox-checked .mat-checkbox-background,.mat-checkbox-disabled.mat-checkbox-indeterminate .mat-checkbox-background{background-color:#b0b0b0}.mat-checkbox-disabled:not(.mat-checkbox-checked) .mat-checkbox-frame{border-color:#b0b0b0}.mat-checkbox-disabled .mat-checkbox-label{color:#b0b0b0}.mat-checkbox:not(.mat-checkbox-disabled).mat-primary .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(103,58,183,.26)}.mat-checkbox:not(.mat-checkbox-disabled).mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(255,215,64,.26)}.mat-checkbox:not(.mat-checkbox-disabled).mat-warn .mat-checkbox-ripple .mat-ripple-element{background-color:rgba(244,67,54,.26)}.mat-chip:not(.mat-basic-chip){background-color:#e0e0e0;color:rgba(0,0,0,.87)}.mat-chip:not(.mat-basic-chip) .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip:not(.mat-basic-chip) .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-primary{background-color:#673ab7;color:#fff}.mat-chip.mat-chip-selected.mat-primary .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-chip-selected.mat-primary .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-warn{background-color:#f44336;color:#fff}.mat-chip.mat-chip-selected.mat-warn .mat-chip-remove{color:#fff;opacity:.4}.mat-chip.mat-chip-selected.mat-warn .mat-chip-remove:hover{opacity:.54}.mat-chip.mat-chip-selected.mat-accent{background-color:#ffd740;color:rgba(0,0,0,.87)}.mat-chip.mat-chip-selected.mat-accent .mat-chip-remove{color:rgba(0,0,0,.87);opacity:.4}.mat-chip.mat-chip-selected.mat-accent .mat-chip-remove:hover{opacity:.54}.mat-table{background:#fff}.mat-header-row,.mat-row{border-bottom-color:rgba(0,0,0,.12)}.mat-header-cell{color:rgba(0,0,0,.54)}.mat-cell{color:rgba(0,0,0,.87)}.mat-datepicker-content{background-color:#fff;color:rgba(0,0,0,.87)}.mat-calendar-arrow{border-top-color:rgba(0,0,0,.54)}.mat-calendar-next-button,.mat-calendar-previous-button{color:rgba(0,0,0,.54)}.mat-calendar-table-header{color:rgba(0,0,0,.38)}.mat-calendar-table-header-divider::after{background:rgba(0,0,0,.12)}.mat-calendar-body-label{color:rgba(0,0,0,.54)}.mat-calendar-body-cell-content{color:rgba(0,0,0,.87);border-color:transparent}.mat-calendar-body-disabled>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){color:rgba(0,0,0,.38)}.cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:rgba(0,0,0,.04)}.mat-calendar-body-selected{background-color:#673ab7;color:#fff}.mat-calendar-body-disabled>.mat-calendar-body-selected{background-color:rgba(103,58,183,.4)}.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,.38)}.mat-calendar-body-today.mat-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff}.mat-calendar-body-disabled>.mat-calendar-body-today:not(.mat-calendar-body-selected){border-color:rgba(0,0,0,.18)}.mat-dialog-container{background:#fff;color:rgba(0,0,0,.87)}.mat-divider{border-top-color:rgba(0,0,0,.12)}.mat-divider-vertical{border-right-color:rgba(0,0,0,.12)}.mat-expansion-panel{background:#fff;color:rgba(0,0,0,.87)}.mat-action-row{border-top-color:rgba(0,0,0,.12)}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused,.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:rgba(0,0,0,.04)}.mat-expansion-panel-header-title{color:rgba(0,0,0,.87)}.mat-expansion-indicator::after,.mat-expansion-panel-header-description{color:rgba(0,0,0,.54)}.mat-expansion-panel-header[aria-disabled=true]{color:rgba(0,0,0,.26)}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title{color:inherit}.mat-form-field-label{color:rgba(0,0,0,.54)}.mat-hint{color:rgba(0,0,0,.54)}.mat-focused .mat-form-field-label{color:#673ab7}.mat-focused .mat-form-field-label.mat-accent{color:#ffd740}.mat-focused .mat-form-field-label.mat-warn{color:#f44336}.mat-focused .mat-form-field-required-marker{color:#ffd740}.mat-form-field-underline{background-color:rgba(0,0,0,.42)}.mat-form-field-disabled .mat-form-field-underline{background-image:linear-gradient(to right,rgba(0,0,0,.42) 0,rgba(0,0,0,.42) 33%,transparent 0);background-size:4px 1px;background-repeat:repeat-x}.mat-form-field-ripple{background-color:#673ab7}.mat-form-field-ripple.mat-accent{background-color:#ffd740}.mat-form-field-ripple.mat-warn{background-color:#f44336}.mat-form-field-invalid .mat-form-field-label{color:#f44336}.mat-form-field-invalid .mat-form-field-label .mat-form-field-required-marker,.mat-form-field-invalid .mat-form-field-label.mat-accent{color:#f44336}.mat-form-field-invalid .mat-form-field-ripple{background-color:#f44336}.mat-error{color:#f44336}.mat-icon.mat-primary{color:#673ab7}.mat-icon.mat-accent{color:#ffd740}.mat-icon.mat-warn{color:#f44336}.mat-input-element:disabled{color:rgba(0,0,0,.38)}.mat-input-element{caret-color:#673ab7}.mat-input-element::placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-moz-placeholder{color:rgba(0,0,0,.42)}.mat-input-element::-webkit-input-placeholder{color:rgba(0,0,0,.42)}.mat-input-element:-ms-input-placeholder{color:rgba(0,0,0,.42)}.mat-accent .mat-input-element{caret-color:#ffd740}.mat-form-field-invalid .mat-input-element,.mat-warn .mat-input-element{caret-color:#f44336}.mat-list .mat-list-item,.mat-nav-list .mat-list-item,.mat-selection-list .mat-list-item{color:rgba(0,0,0,.87)}.mat-list .mat-list-option,.mat-nav-list .mat-list-option,.mat-selection-list .mat-list-option{color:rgba(0,0,0,.87)}.mat-list .mat-subheader,.mat-nav-list .mat-subheader,.mat-selection-list .mat-subheader{color:rgba(0,0,0,.54)}.mat-list-item-disabled{background-color:#eee}.mat-nav-list .mat-list-item{outline:0}.mat-nav-list .mat-list-item.mat-list-item-focus,.mat-nav-list .mat-list-item:hover{background:rgba(0,0,0,.04)}.mat-list-option{outline:0}.mat-list-option.mat-list-item-focus,.mat-list-option:hover{background:rgba(0,0,0,.04)}.mat-menu-panel{background:#fff}.mat-menu-item{background:0 0;color:rgba(0,0,0,.87)}.mat-menu-item[disabled]{color:rgba(0,0,0,.38)}.mat-menu-item .mat-icon:not([color]),.mat-menu-item-submenu-trigger::after{color:rgba(0,0,0,.54)}.mat-menu-item-highlighted:not([disabled]),.mat-menu-item:focus:not([disabled]),.mat-menu-item:hover:not([disabled]){background:rgba(0,0,0,.04)}.mat-paginator{background:#fff}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{color:rgba(0,0,0,.54)}.mat-paginator-decrement,.mat-paginator-increment{border-top:2px solid rgba(0,0,0,.54);border-right:2px solid rgba(0,0,0,.54)}.mat-icon-button[disabled] .mat-paginator-decrement,.mat-icon-button[disabled] .mat-paginator-increment{border-color:rgba(0,0,0,.38)}.mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27%23d1c4e9%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar-buffer{background-color:#d1c4e9}.mat-progress-bar-fill::after{background-color:#673ab7}.mat-progress-bar.mat-accent .mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27%23ffe57f%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar.mat-accent .mat-progress-bar-buffer{background-color:#ffe57f}.mat-progress-bar.mat-accent .mat-progress-bar-fill::after{background-color:#ffd740}.mat-progress-bar.mat-warn .mat-progress-bar-background{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%271.1%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20xmlns%3Axlink%3D%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%27%20x%3D%270px%27%20y%3D%270px%27%20enable-background%3D%27new%200%200%205%202%27%20xml%3Aspace%3D%27preserve%27%20viewBox%3D%270%200%205%202%27%20preserveAspectRatio%3D%27none%20slice%27%3E%3Ccircle%20cx%3D%271%27%20cy%3D%271%27%20r%3D%271%27%20fill%3D%27%23ffcdd2%27%2F%3E%3C%2Fsvg%3E")}.mat-progress-bar.mat-warn .mat-progress-bar-buffer{background-color:#ffcdd2}.mat-progress-bar.mat-warn .mat-progress-bar-fill::after{background-color:#f44336}.mat-progress-spinner circle,.mat-spinner circle{stroke:#673ab7}.mat-progress-spinner.mat-accent circle,.mat-spinner.mat-accent circle{stroke:#ffd740}.mat-progress-spinner.mat-warn circle,.mat-spinner.mat-warn circle{stroke:#f44336}.mat-radio-outer-circle{border-color:rgba(0,0,0,.54)}.mat-radio-disabled .mat-radio-outer-circle{border-color:rgba(0,0,0,.38)}.mat-radio-disabled .mat-radio-inner-circle,.mat-radio-disabled .mat-radio-ripple .mat-ripple-element{background-color:rgba(0,0,0,.38)}.mat-radio-disabled .mat-radio-label-content{color:rgba(0,0,0,.38)}.mat-radio-button.mat-primary.mat-radio-checked .mat-radio-outer-circle{border-color:#673ab7}.mat-radio-button.mat-primary .mat-radio-inner-circle{background-color:#673ab7}.mat-radio-button.mat-primary .mat-radio-ripple .mat-ripple-element{background-color:rgba(103,58,183,.26)}.mat-radio-button.mat-accent.mat-radio-checked .mat-radio-outer-circle{border-color:#ffd740}.mat-radio-button.mat-accent .mat-radio-inner-circle{background-color:#ffd740}.mat-radio-button.mat-accent .mat-radio-ripple .mat-ripple-element{background-color:rgba(255,215,64,.26)}.mat-radio-button.mat-warn.mat-radio-checked .mat-radio-outer-circle{border-color:#f44336}.mat-radio-button.mat-warn .mat-radio-inner-circle{background-color:#f44336}.mat-radio-button.mat-warn .mat-radio-ripple .mat-ripple-element{background-color:rgba(244,67,54,.26)}.mat-select-content,.mat-select-panel-done-animating{background:#fff}.mat-select-value{color:rgba(0,0,0,.87)}.mat-select-placeholder{color:rgba(0,0,0,.42)}.mat-select-disabled .mat-select-value{color:rgba(0,0,0,.38)}.mat-select-arrow{color:rgba(0,0,0,.54)}.mat-select-panel .mat-option.mat-selected:not(.mat-option-multiple){background:rgba(0,0,0,.12)}.mat-form-field.mat-focused.mat-primary .mat-select-arrow{color:#673ab7}.mat-form-field.mat-focused.mat-accent .mat-select-arrow{color:#ffd740}.mat-form-field.mat-focused.mat-warn .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-invalid .mat-select-arrow{color:#f44336}.mat-form-field .mat-select.mat-select-disabled .mat-select-arrow{color:rgba(0,0,0,.38)}.mat-drawer-container{background-color:#fafafa;color:rgba(0,0,0,.87)}.mat-drawer{background-color:#fff;color:rgba(0,0,0,.87)}.mat-drawer.mat-drawer-push{background-color:#fff}.mat-drawer-backdrop.mat-drawer-shown{background-color:rgba(0,0,0,.6)}.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#ffc107}.mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(255,193,7,.5)}.mat-slide-toggle:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle .mat-ripple-element{background-color:rgba(255,193,7,.12)}.mat-slide-toggle.mat-primary.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#673ab7}.mat-slide-toggle.mat-primary.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(103,58,183,.5)}.mat-slide-toggle.mat-primary:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle.mat-primary .mat-ripple-element{background-color:rgba(103,58,183,.12)}.mat-slide-toggle.mat-warn.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb{background-color:#f44336}.mat-slide-toggle.mat-warn.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar{background-color:rgba(244,67,54,.5)}.mat-slide-toggle.mat-warn:not(.mat-checked) .mat-ripple-element{background-color:rgba(0,0,0,.06)}.mat-slide-toggle.mat-warn .mat-ripple-element{background-color:rgba(244,67,54,.12)}.mat-disabled .mat-slide-toggle-thumb{background-color:#bdbdbd}.mat-disabled .mat-slide-toggle-bar{background-color:rgba(0,0,0,.1)}.mat-slide-toggle-thumb{background-color:#fafafa}.mat-slide-toggle-bar{background-color:rgba(0,0,0,.38)}.mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-primary .mat-slider-thumb,.mat-primary .mat-slider-thumb-label,.mat-primary .mat-slider-track-fill{background-color:#673ab7}.mat-primary .mat-slider-thumb-label-text{color:#fff}.mat-accent .mat-slider-thumb,.mat-accent .mat-slider-thumb-label,.mat-accent .mat-slider-track-fill{background-color:#ffd740}.mat-accent .mat-slider-thumb-label-text{color:rgba(0,0,0,.87)}.mat-warn .mat-slider-thumb,.mat-warn .mat-slider-thumb-label,.mat-warn .mat-slider-track-fill{background-color:#f44336}.mat-warn .mat-slider-thumb-label-text{color:#fff}.mat-slider-focus-ring{background-color:rgba(255,215,64,.2)}.cdk-focused .mat-slider-track-background,.mat-slider:hover .mat-slider-track-background{background-color:rgba(0,0,0,.38)}.mat-slider-disabled .mat-slider-thumb,.mat-slider-disabled .mat-slider-track-background,.mat-slider-disabled .mat-slider-track-fill{background-color:rgba(0,0,0,.26)}.mat-slider-disabled:hover .mat-slider-track-background{background-color:rgba(0,0,0,.26)}.mat-slider-min-value .mat-slider-focus-ring{background-color:rgba(0,0,0,.12)}.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing .mat-slider-thumb-label{background-color:rgba(0,0,0,.87)}.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb,.mat-slider-min-value.mat-slider-thumb-label-showing.cdk-focused .mat-slider-thumb-label{background-color:rgba(0,0,0,.26)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing) .mat-slider-thumb{border-color:rgba(0,0,0,.26);background-color:transparent}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover .mat-slider-thumb{border-color:rgba(0,0,0,.38)}.mat-slider-min-value:not(.mat-slider-thumb-label-showing).cdk-focused.mat-slider-disabled .mat-slider-thumb,.mat-slider-min-value:not(.mat-slider-thumb-label-showing):hover.mat-slider-disabled .mat-slider-thumb{border-color:rgba(0,0,0,.26)}.mat-slider-has-ticks .mat-slider-wrapper::after{border-color:rgba(0,0,0,.7)}.mat-slider-horizontal .mat-slider-ticks{background-image:repeating-linear-gradient(to right,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent);background-image:-moz-repeating-linear-gradient(.0001deg,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-slider-vertical .mat-slider-ticks{background-image:repeating-linear-gradient(to bottom,rgba(0,0,0,.7),rgba(0,0,0,.7) 2px,transparent 0,transparent)}.mat-step-header.cdk-keyboard-focused,.mat-step-header.cdk-program-focused,.mat-step-header:hover{background-color:rgba(0,0,0,.04)}.mat-step-header .mat-step-label,.mat-step-header .mat-step-optional{color:rgba(0,0,0,.38)}.mat-step-header .mat-step-icon{background-color:#673ab7;color:#fff}.mat-step-header .mat-step-icon-not-touched{background-color:rgba(0,0,0,.38);color:#fff}.mat-step-header .mat-step-label.mat-step-label-active{color:rgba(0,0,0,.87)}.mat-stepper-horizontal,.mat-stepper-vertical{background-color:#fff}.mat-stepper-vertical-line::before{border-left-color:rgba(0,0,0,.12)}.mat-stepper-horizontal-line{border-top-color:rgba(0,0,0,.12)}.mat-tab-header,.mat-tab-nav-bar{border-bottom:1px solid rgba(0,0,0,.12)}.mat-tab-group-inverted-header .mat-tab-header,.mat-tab-group-inverted-header .mat-tab-nav-bar{border-top:1px solid rgba(0,0,0,.12);border-bottom:none}.mat-tab-label,.mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-label.mat-tab-disabled,.mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.38)}.mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.38)}.mat-tab-group[class*=mat-background-] .mat-tab-header,.mat-tab-nav-bar[class*=mat-background-]{border-bottom:none;border-top:none}.mat-tab-group.mat-primary .mat-tab-label:focus,.mat-tab-group.mat-primary .mat-tab-link:focus,.mat-tab-nav-bar.mat-primary .mat-tab-label:focus,.mat-tab-nav-bar.mat-primary .mat-tab-link:focus{background-color:rgba(209,196,233,.3)}.mat-tab-group.mat-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary .mat-ink-bar{background-color:#673ab7}.mat-tab-group.mat-primary.mat-background-primary .mat-ink-bar,.mat-tab-nav-bar.mat-primary.mat-background-primary .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-accent .mat-tab-label:focus,.mat-tab-group.mat-accent .mat-tab-link:focus,.mat-tab-nav-bar.mat-accent .mat-tab-label:focus,.mat-tab-nav-bar.mat-accent .mat-tab-link:focus{background-color:rgba(255,229,127,.3)}.mat-tab-group.mat-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent .mat-ink-bar{background-color:#ffd740}.mat-tab-group.mat-accent.mat-background-accent .mat-ink-bar,.mat-tab-nav-bar.mat-accent.mat-background-accent .mat-ink-bar{background-color:rgba(0,0,0,.87)}.mat-tab-group.mat-warn .mat-tab-label:focus,.mat-tab-group.mat-warn .mat-tab-link:focus,.mat-tab-nav-bar.mat-warn .mat-tab-label:focus,.mat-tab-nav-bar.mat-warn .mat-tab-link:focus{background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn .mat-ink-bar{background-color:#f44336}.mat-tab-group.mat-warn.mat-background-warn .mat-ink-bar,.mat-tab-nav-bar.mat-warn.mat-background-warn .mat-ink-bar{background-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label:focus,.mat-tab-group.mat-background-primary .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-primary .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-primary .mat-tab-link:focus{background-color:rgba(209,196,233,.3)}.mat-tab-group.mat-background-primary .mat-tab-header,.mat-tab-group.mat-background-primary .mat-tab-links,.mat-tab-nav-bar.mat-background-primary .mat-tab-header,.mat-tab-nav-bar.mat-background-primary .mat-tab-links{background-color:#673ab7}.mat-tab-group.mat-background-primary .mat-tab-label,.mat-tab-group.mat-background-primary .mat-tab-link,.mat-tab-nav-bar.mat-background-primary .mat-tab-label,.mat-tab-nav-bar.mat-background-primary .mat-tab-link{color:#fff}.mat-tab-group.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-primary .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-primary .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-primary .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-primary .mat-ripple-element,.mat-tab-nav-bar.mat-background-primary .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-tab-group.mat-background-accent .mat-tab-label:focus,.mat-tab-group.mat-background-accent .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-accent .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-accent .mat-tab-link:focus{background-color:rgba(255,229,127,.3)}.mat-tab-group.mat-background-accent .mat-tab-header,.mat-tab-group.mat-background-accent .mat-tab-links,.mat-tab-nav-bar.mat-background-accent .mat-tab-header,.mat-tab-nav-bar.mat-background-accent .mat-tab-links{background-color:#ffd740}.mat-tab-group.mat-background-accent .mat-tab-label,.mat-tab-group.mat-background-accent .mat-tab-link,.mat-tab-nav-bar.mat-background-accent .mat-tab-label,.mat-tab-nav-bar.mat-background-accent .mat-tab-link{color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-accent .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-accent .mat-tab-link.mat-tab-disabled{color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.87)}.mat-tab-group.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-accent .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(0,0,0,.4)}.mat-tab-group.mat-background-accent .mat-ripple-element,.mat-tab-nav-bar.mat-background-accent .mat-ripple-element{background-color:rgba(0,0,0,.12)}.mat-tab-group.mat-background-warn .mat-tab-label:focus,.mat-tab-group.mat-background-warn .mat-tab-link:focus,.mat-tab-nav-bar.mat-background-warn .mat-tab-label:focus,.mat-tab-nav-bar.mat-background-warn .mat-tab-link:focus{background-color:rgba(255,205,210,.3)}.mat-tab-group.mat-background-warn .mat-tab-header,.mat-tab-group.mat-background-warn .mat-tab-links,.mat-tab-nav-bar.mat-background-warn .mat-tab-header,.mat-tab-nav-bar.mat-background-warn .mat-tab-links{background-color:#f44336}.mat-tab-group.mat-background-warn .mat-tab-label,.mat-tab-group.mat-background-warn .mat-tab-link,.mat-tab-nav-bar.mat-background-warn .mat-tab-label,.mat-tab-nav-bar.mat-background-warn .mat-tab-link{color:#fff}.mat-tab-group.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-group.mat-background-warn .mat-tab-link.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-label.mat-tab-disabled,.mat-tab-nav-bar.mat-background-warn .mat-tab-link.mat-tab-disabled{color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-chevron{border-color:#fff}.mat-tab-group.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron,.mat-tab-nav-bar.mat-background-warn .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:rgba(255,255,255,.4)}.mat-tab-group.mat-background-warn .mat-ripple-element,.mat-tab-nav-bar.mat-background-warn .mat-ripple-element{background-color:rgba(255,255,255,.12)}.mat-toolbar{background:#f5f5f5;color:rgba(0,0,0,.87)}.mat-toolbar.mat-primary{background:#673ab7;color:#fff}.mat-toolbar.mat-accent{background:#ffd740;color:rgba(0,0,0,.87)}.mat-toolbar.mat-warn{background:#f44336;color:#fff}.mat-tooltip{background:rgba(97,97,97,.9)}.mat-snack-bar-container{background:#323232;color:#fff}.mat-simple-snackbar-action{color:#ffd740} \ No newline at end of file diff --git a/src/assets/fonts/Roboto-Black.ttf b/src/assets/fonts/Roboto-Black.ttf new file mode 100755 index 0000000..689fe5c Binary files /dev/null and b/src/assets/fonts/Roboto-Black.ttf differ diff --git a/src/assets/fonts/Roboto-BlackItalic.ttf b/src/assets/fonts/Roboto-BlackItalic.ttf new file mode 100755 index 0000000..0b4e0ee Binary files /dev/null and b/src/assets/fonts/Roboto-BlackItalic.ttf differ diff --git a/src/assets/fonts/Roboto-Bold.ttf b/src/assets/fonts/Roboto-Bold.ttf new file mode 100755 index 0000000..d3f01ad Binary files /dev/null and b/src/assets/fonts/Roboto-Bold.ttf differ diff --git a/src/assets/fonts/Roboto-BoldItalic.ttf b/src/assets/fonts/Roboto-BoldItalic.ttf new file mode 100755 index 0000000..41cc1e7 Binary files /dev/null and b/src/assets/fonts/Roboto-BoldItalic.ttf differ diff --git a/src/assets/fonts/Roboto-Italic.ttf b/src/assets/fonts/Roboto-Italic.ttf new file mode 100755 index 0000000..6a1cee5 Binary files /dev/null and b/src/assets/fonts/Roboto-Italic.ttf differ diff --git a/src/assets/fonts/Roboto-Light.ttf b/src/assets/fonts/Roboto-Light.ttf new file mode 100755 index 0000000..219063a Binary files /dev/null and b/src/assets/fonts/Roboto-Light.ttf differ diff --git a/src/assets/fonts/Roboto-LightItalic.ttf b/src/assets/fonts/Roboto-LightItalic.ttf new file mode 100755 index 0000000..0e81e87 Binary files /dev/null and b/src/assets/fonts/Roboto-LightItalic.ttf differ diff --git a/src/assets/fonts/Roboto-Medium.ttf b/src/assets/fonts/Roboto-Medium.ttf new file mode 100755 index 0000000..1a7f3b0 Binary files /dev/null and b/src/assets/fonts/Roboto-Medium.ttf differ diff --git a/src/assets/fonts/Roboto-MediumItalic.ttf b/src/assets/fonts/Roboto-MediumItalic.ttf new file mode 100755 index 0000000..0030295 Binary files /dev/null and b/src/assets/fonts/Roboto-MediumItalic.ttf differ diff --git a/src/assets/fonts/Roboto-Regular.ttf b/src/assets/fonts/Roboto-Regular.ttf new file mode 100755 index 0000000..2c97eea Binary files /dev/null and b/src/assets/fonts/Roboto-Regular.ttf differ diff --git a/src/assets/fonts/Roboto-Thin.ttf b/src/assets/fonts/Roboto-Thin.ttf new file mode 100755 index 0000000..b74a4fd Binary files /dev/null and b/src/assets/fonts/Roboto-Thin.ttf differ diff --git a/src/assets/fonts/Roboto-ThinItalic.ttf b/src/assets/fonts/Roboto-ThinItalic.ttf new file mode 100755 index 0000000..dd0ddb8 Binary files /dev/null and b/src/assets/fonts/Roboto-ThinItalic.ttf differ diff --git a/src/assets/fonts/new Roboto-Light.ttf b/src/assets/fonts/new Roboto-Light.ttf new file mode 100755 index 0000000..219063a Binary files /dev/null and b/src/assets/fonts/new Roboto-Light.ttf differ diff --git a/src/assets/icon/PDF_file_icon.svg b/src/assets/icon/PDF_file_icon.svg new file mode 100755 index 0000000..a44518f --- /dev/null +++ b/src/assets/icon/PDF_file_icon.svg @@ -0,0 +1,149 @@ + + + + + PDF file icon + + + + + + + + + + image/svg+xml + + PDF file icon + 08/10/2018 + + + Adobe Systems + + + + + CMetalCore + + + Fuente del texto "PDF": +Franklin Gothic Medium Cond + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icon/favicon.png b/src/assets/icon/favicon.png new file mode 100755 index 0000000..51888a7 Binary files /dev/null and b/src/assets/icon/favicon.png differ diff --git a/src/assets/icon/md-save.svg b/src/assets/icon/md-save.svg new file mode 100755 index 0000000..3926b0a --- /dev/null +++ b/src/assets/icon/md-save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icon/pdf_icon.svg b/src/assets/icon/pdf_icon.svg new file mode 100755 index 0000000..cbdaba2 Binary files /dev/null and b/src/assets/icon/pdf_icon.svg differ diff --git a/src/assets/img/PD_Genie_TM1_nobg.png b/src/assets/img/PD_Genie_TM1_nobg.png new file mode 100755 index 0000000..be5118a Binary files /dev/null and b/src/assets/img/PD_Genie_TM1_nobg.png differ diff --git a/src/assets/img/PD_watermark.png b/src/assets/img/PD_watermark.png new file mode 100755 index 0000000..a3809e8 Binary files /dev/null and b/src/assets/img/PD_watermark.png differ diff --git a/src/assets/img/avatar/girl-avatar.png b/src/assets/img/avatar/girl-avatar.png new file mode 100755 index 0000000..33560f7 Binary files /dev/null and b/src/assets/img/avatar/girl-avatar.png differ diff --git a/src/assets/img/misc/avatar.jpg b/src/assets/img/misc/avatar.jpg new file mode 100755 index 0000000..26d3074 Binary files /dev/null and b/src/assets/img/misc/avatar.jpg differ diff --git a/src/assets/img/misc/login-bg2.jpg b/src/assets/img/misc/login-bg2.jpg new file mode 100755 index 0000000..b40269a Binary files /dev/null and b/src/assets/img/misc/login-bg2.jpg differ diff --git a/src/assets/img/misc/login.jpg b/src/assets/img/misc/login.jpg new file mode 100755 index 0000000..88ab721 Binary files /dev/null and b/src/assets/img/misc/login.jpg differ diff --git a/src/assets/img/misc/sidemenubg.jpg b/src/assets/img/misc/sidemenubg.jpg new file mode 100755 index 0000000..2d01059 Binary files /dev/null and b/src/assets/img/misc/sidemenubg.jpg differ diff --git a/src/assets/img/pd_icon.png b/src/assets/img/pd_icon.png new file mode 100755 index 0000000..4d18cce Binary files /dev/null and b/src/assets/img/pd_icon.png differ diff --git a/src/assets/imgs/logo.png b/src/assets/imgs/logo.png new file mode 100755 index 0000000..80f631d Binary files /dev/null and b/src/assets/imgs/logo.png differ diff --git a/src/assets/sample_data.json b/src/assets/sample_data.json new file mode 100755 index 0000000..748cd37 --- /dev/null +++ b/src/assets/sample_data.json @@ -0,0 +1,103 @@ +{ + "firstCtrl": "", + "questions": [ + { + "is_person_met_id_proof": "data:image/png;base64,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", + "is_person_met_pic": "data:image/png;base64,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", + "is_person_met": true, + "form_id": "18", + "form_name": "General Info" + }, + { + "pd_location": "2", + "pd_location_pic": "data:image/png;base64,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", + "comment_locality": "2", + "form_id": "5", + "form_name": "Address Info" + }, + { + "business_group": [ + { + "officer_total": 233, + "was_the_company_name_board_sighted": "yes", + "name_board_sighted_pic": "", + "documents_sighted": "yes", + "documents_info": [ + { + "document_name": "gst_Regn_cert", + "document_image": "data:image/png;base64,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" + }, + { + "document_name": "practice_cert", + "document_image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAABECAYAAAAyTz3gAAAYl0lEQVR4XuWad3RU1b74P5OZTCZ9UkiDkBAgCaKSEB4Q4MJQVKSJlIsKAgrKvZcHhKtYUCSIDREfxYaCVAGRh2AIHRJAmlKC9BBIAiEhlUkvU85v7TOTRgoJF31//L5rZS2Ys8/e+7O/de99FPx/KIr/a2bp2DGJxEQYMgSFp+dfMp+/ZJD6Fla6elVi9WrIza1+3KPHXwL/l0PLsDExyNptSP5k+L8MWsrJkdixA44da7pH/Unwfzq0VFIiceAAsnYfVB4ivASjmgUtwZPAe8D3Cvj+fgzS/v0W7ZaU3K9p054/BHgJNjUXehywDpingOiGZiolJEj8+GPtINU0rKa1aiK8BL8ApxUwr7JjCQIeKnSTglTTsJrWqhF4CWyAu8DXCnirZocPBbrBIGU2W6J0WhqUlYFaDd7e0KGD5d/3Sno6JCVBYSE4OoK/P7RtW7uVJEFKCiQnW9zGzg46dYKFC1G0by/zSNAXGAtMAk4BR4FYBeyTYPx/BN1okDIakf05Kwv8/MDNDYqK4NYtcHCAYcPAyaka6LffICEBtFrw8ID8fMjJgaAgGDCgut3+/XDjBrRoIbcz6PWoMjMx29ig/OgjmDQJPD1HAa8D3YFkQOTHNQrY+B/5NDExc+Wo3FCQqoTo1s2iiUq5eRN274bAQHhSxEXgzh345Rdo1w769atue+QIXL5sgRbwGRmWLBAYSFmPHmTcuEZhbi6uhUUE3MmC0FDo3RuE2fv4wMCBoq8FNc37waF79YJHHmnc7374AQwGGD8ebIR71ZAtW0Cvh4kTQaWCQ4fg6lUYPdpiEZUiLEO4hwAQ1iL6KyzEbGvLtYvnKS8pllsqJInHrqeAlxcMH255W1jYtm0wfTqKpUurLLpZ0HKQio6GjRshIsLy15AI/1271jJZYcb3Sny8BWbECGGKsHWrJdJPngyK+3tc5uWLlFy/jq3RKAMrJPDNzUPh7g4jR9aGDguDqKiq8rZJ0HKQ2rzZ4m/XrkFc3P2hCwpg0yZo3brSxGpjHz0KFy/C4MHQsiVs2ADl5fDSS41bj9GIJKxC+DRgUCplX5YUCuzF+yIW1AfdtStG8fy991C1bftjg8sqBynhP8JvK6Wp0MXFIMy7VSsYNKguSKWvCisQ1iDM/e7d+2v6xAn44w/yXJzJ8HTHVMNthHk3pOk7rq6knD5N6I4daHW6amidLk5VYaMf1869IGfNBPeYeoNUU6FFqhI7KJF2xoypCx0bC7dvw7hxlki+Zw+kpsLzz4Ozc3V70U92tqUfEel//BGpqIgLgf6yditFbTAQmppWr6bv2NtzpbRUbhoWH18bOqLfjtfbkLFwYbcLBOZaGtWRpkKLFytBKv22sjMxAWHOrq4wSmQW4Px5OH4cunSBzp2rhxULIfoRftm1K8LNpMJCLrRpLXJxlbTOzEZbWATCp0eNoignh/TDhwnOyeEWcN3asha0lJIiDfvXWQLzzvH6kNu0LLRHebesYWhhkuKvPhF+LJ6JHCuip9BQZKQl/4qi49QpS2QV6US0FSJy+k8/WfK4SHHifRHdRdoTz8TiiH6sbpGjdSHPxQWl2USLu/my1u0qDGhMJpJbtSItNRVba5IWVf81MQTQtqamS/bFS70/LiKy5BTTOp/D9b86oD2ZidqsRJIkSgsLKCnIR5F0A4/G9sECoHt3ePxxC4zIqyJo5eVVL4+Li6VNYCAmScHFci0Xy91JyzXzdMIGOuZcQGHV4133lpT10OHj52T5rawMQ2wsttaDBwGrd3bidgsPWdMts3IQRn8ZyAQ6AN7WkcX/7WpCF++Jk3ovKKG9MZnZmg24vtgb05Xb2F7JI/dyCoqK++ySRPR0csajlT8uHp6o7i0xRQEjzNrODsnJmcRyF7YXBBBX5Eu2SVPLXlwNhbQoz6VQ5UimpoX8LEBdxBNOt3nWJRVVVhKZF8+jMpmpUFmid6Xok5LlgltotVJEsSsWotzq0246nSUa6Lf8Io1ZqsdkY8sM5WYe6a2V3zFcTed0kiOB+ms4mYvqN+cavyoUChy1WnyC2uMgfPYeKTGr2Ffkx7LcjuhN9dTe9xmho0bPmLJ9tLp5qN6WeUmi4qyWEkcn4oeOlf8+HdtbDmQy9H89ucd/tsOum1k3bvOd5wS6qa8yLfgEKkc15rwiUq+b2F/0KCNzt2EnifW6v9golbQICMQ7MKiqcbrBgQ+ywzhV4olZXvsHkz5FR5mQt/G+0DufmyLDljpassGy4eHV0BH9Yt99O2fZ/LYl11jj8QK/O0Xwdkgcoc5ZmLIKMN7RsyM/HK/CNDqXnmvyTBU2Nni28se3XTAC+J3MCM6XuTf5/YYaNgU6rU0wC/7nx1pd1IJ+ovcPv7+W82UXv/J0Wmfk8EW3Vzim6cZr/gfwy7uOlF/MzQJnttvo+Ef2ymZP2tnbj3dcppJYXtfcm90Z0Bj00kETGbFyISf7DWPrpFkNQ/fRbU5+O2txYGRqAjfatSf8bAIe+9KYtGojE/K3IxWVkltmz/fqEURlfoUN5ibP1YyN7DInHRqp05vcm6VhY9BjP9vK9Hcnc+3RLux67h8NQ0f0i019o+KH1qOPbuRQ7970FZsBkdN+u8bmuZNQZ+aQbePBKrsRfHTtY1ro9bJHSgowKxRy9DQqlZSp1RQ62lMiNvVWSbJry8feUUiN+LANEl6qMsI1OQRrCnBQGMnOLeBClplk+0AyHQNqTf4hQe+4MCSgoGP0qheI79OnClqMNP6Htfz7w/kkO7ZneeeJrNs6FU9RdNQQUf+KfKkymeRfi+013PJqQaHakWjft8hUWdJOfaJVVjDN4yJ/c8zEXVmOPj1drpFdMjIQG8zflPZc8uzGrqDx5NlbMu7Dge67Y33XIOXYr1Y+XQc6MPkG2wY/xd5WA5m3+H3G/voTy6dMoczODo3YtVhFaDvPxUne4nnkF2BQKdnWbgAL/KY3COyjKmWW5x/8zSmTisICGfaOtfB5DOSK6oz17RvajmwL/gfpTkEPCVoXE/pYa9Xl79cO4lCfavMW4/lkZLB82Djeen0Rl8eEMW79eta9+CKfvPkmZRoNUYsXoxXHOla54+Emm7LY255178grYZ/Wgn6k8BrPpO/FvzSdUIdCnJzVZNjYcE1sM0XFBPiLcUGOHFmAKIvSgUWzV3EnwYsZV79lSNYBVEYjJqWSInuNvOsS1nY/n+6ybBlO06YtkRNm0uaDksfY4ST0CK82b7MZz9xcXLL13HikvTypSuh5c+cSHR2Nq14vg1fCC9++5e2Jb/Zd7AwGBvVcS7adJU39PW0HbyR+TYbGi0KfAFoVJaPOyUEJXAKyAXtAjCRMWzhLrtqO8opyfvfy5YOvf+HLWVPpceM3SjQaSuzU8hjOJaVyPLneypfnPt9WbyCzLy6Ui5NuM2Zgv2SJJcJI8fESOh2re/Rg5qzXMXp5UdGyFYbWrXEqLKTI2bKS90JXqrEmvKqigiwHD4Jy05jd8U32evfGzlzB/iPPU2DrzPPdvmDu2alIBTmIArSrtUQ8WcMmegMpPq145psYxi59D4+sdIrDexK1bim72+nwI7WqtVthEf6Z2eS6uqBbc6gOtHtWOiNXLuTxk/FErFiB8+TJs2Toyyv3So6Tx7GlWxBfeXhw88svqfD3R5SVT8XuoNvxY6yZ/Aq9jh6TzbtS0/c6rICf9emn9F2zhx7pZ/i8/Sts8B+OUjLRqjRDbq4uz2HK2XeqXhUbSRfgsNWkT/Qbyr+P7OZKm1DGfrqWpzd9Q/sLpxiUfQeH0mLmj36NiYdqX66E3ExDZTQR/r+nmDbnFbnv797+H/ndvjEbqsaqKkNHukRPf0T32JLZvzzPysgIPunVi7RPq31RU1rKlC+XEXLyAif792P1P19qEFr0Ls6sPnvqv/n3vq+qoCtHVZsNjE1aSb+0GFTWjYAf4AD8at0ovPHDYX6dOIArbUKqoB89d4Lxl89xLaA9+7rrGHik9r2Y1109TqVl9FlzgOmzxuGRZVnge6UKeqrbjGNzvhsW6T2qP0lubjwx5VVS35+PZCvip0WcCwqYNuEj9AE+fLlkZqPQov2KPuOZdHgd73R8gz3efeQ+JqRuYWLqZpyNxfKOR+yERLCyUypRm0ws79KLkFO/Mm3bWU6P7lYLOuLMUcYkXqgXpOaPC4aPp9u2tQ22q4Je6vNsn2mbZsQLnxby+uBBfL94CXfFGXQNCY8+RN8/jrDo5zn31XSSVxBBOSkM6rmGLDtPeuec5PM/3ueCSwgHnALplL6HXC9f1k9/nze2rCQy4QRzR7xE362r6oUOO3ucF67+QUJoJzY+PZIJ21bUC5adfLPWiUqDmr4SEuIcsnx5gYAWK3/I2ZlgpZLvZsxgcVQU+VotNmUmQqceZUjyfhbEzW8U+qVVq/j+5Zc57t6ZaWHz5XFnX1nGiPTdTO78KcG5h+mauoMlH3zH9Y4R7Jv8NN65mY1CB5//nbHXL5Pn6s53I19kxN7am4lKuHu3lg1CS2KPHR9vroQusbHBSRzIiX22q6sM/vUzr9By9nmeLP6VT4582CD0i+vWsfzVKWCUmBDxOTesJeRbV79i1O1YXo5YRJ/8XQQk7Zc1OmrvVuZ+ZVmY6GcnoPt5jfz7qb9347p/W8Ys2lAVyIKcXOl/4iAHuvakRZ7I3NXim5NHudqWpKza1WId6Lg4tH372srR27x/v1Q2eJBcUYncl+piOXYLzAeTQsmiR6aw2XswT5iO8fGhDznUpw/xVncQgatFdjZ94+IIvXKFPBc3Zrd9g1Nu1iMj4MnMw3x0cQFntR0pc1OivnmRhOHjeerXfZx5JIxhcTvY3E2H38l4/rntLHteHYyHPofZMz4g5NRhFNkZ7HrlTX58bSw2kol0Tw9KNHZy6euhL0BbVMwddy1X8vSN+n1Vnh7Ue030ZPPOue1yTqOwt8UOBSdtkykxlTLkKlzTdOftR9+kwkZN1I2VjEvZWqfjAhcXroaEEPvEIHblRGJKstThlSLOt2YlLmd02o6q86/THTvzzvT3cS4pYsWcKbgW5SNi7pNWC5jzzYfYmM0UaBw4U1bCnr+/wou/xtAm967lYN8qoiDKctOSobalMP1O06Aj+sVKKsnEVMNGurjcQuGgxqgwcTUnEcNNd9b4vFVVVf3zxjompWwiJSBArsjWiLsoqyjMEv5fXKLF9urC4d4ZTMpZT3/9YXlXtn7YBHb1HoZRqcJGMvPs2qVV5i3ecyopxrVQz5R3J+Oek4nGzRWNu5tcTQkNi7xstlFQYc0yxZnZlItj4EakKnoLaNFOozDwoddG/NwqsHHWUF5k4P2kgSQZfOVuxMSWn32LcL2lThZSCb923Hi8f0rG7/tEBHx94mQuZs6dT2lhtHxCZVDZsrfXILY89YI8cVFIDNq0XPZpIaKSGrf0PYIvnsHe0x2Ni3OD91xmgxH9zTQQd9diwcLCCIyOJmfbNu6ISwer1IEWv49wOM7o1hdlaKnMwN1cM1syw0kwBuFdlM03Z97GwVR9EWBW2PCbWxir24/mlNPj8m14QzKoYB8j9DG1DiHE7uxS20c50qUvHpfPM2DLSr59+3MePxlH5KGdqB3s0WhdsbFTN3qqVpqbR+ldy8ZHAG/X6fg1IYGwsDAmJCSgt54R1IGOKD3Hv0rWo27pjo3WEcxmpOIyTPpiygqMfOHwolzchxYm4WwsIs3eVw5WqQ6tGjUp8dDbmM07dxY1eqIqantTeTmS0YRCpUQlzLYJN5hCywVp6Zit+/n44cOZJy4ZrLIrKgrN4sXy/2pCrwImzsxfQSeb69w2uJGv9aFNxU1sy0pIN7mxw2EAv9mH3xeuvgZmtQ3TMr8lojDhgd5v7CWzyUxxRiYGcTUsU4XxbEoKenE7YpXXhw9nsHURuiQk4BwWplBE9I9dgsT0hfkf4+VQQqypBzF2fWlbkYKjqZgkuzbkKh/sFFPEAc9OpXRxOseIzZvkaPywRNy8lN3VU1ojTR18NJT5F64wYcIE2bRnzpwpB9xn4uNpt3ixDCzGV0T027lVJRmfXVH0LgY3N742DOOMIvQ/npsAHpMWw8ykFdxs7U++gwabivJat40POogIHWXCj/UFVcFL9DXX34dzBaVVmha7RAEdHR1d66Bd0aXfjv1ac2H/xaaF3HX3Z0HRSDIkjwedj/yeCHYR5evQ5e3gmURLzhY+m+vqTJqbFnEZ8KAimc2U5t2lLL+wFjD2GqZ4avENCiHeGrgE9OzXovho0eLa0BH9Yg+3NGT87RPNd9x2CyI6dwxlki1qc4VckDRXOhQmEX3pcw6EWvJ1nxQIqfGh7xFbW5x8vFDaNb9vY1kZJdm5GMsr6kxLGRxI78QU+ohqMT6ehIQEwsPDmTtxOCOf6INfFx2eIeEW8xaaDjTc6j/PaT2pniHMuW35ZuPdK0twMRQR4/sE57VtyFd5IMnXY7VFLI5n+V065V9iRPouOuVflnP6sVZwwRsib8Fj4rDLKpYDZrC1t0ft7IjKXoONSiUfWNwrwm/NRiPG0nIqioowlJbV1m6NF9RDdfSMiScgIIDVq1ezePFitm/fTsxHUfh6WC4avB7tTuueTysUnfvt3BhkSH1uvnYDN7w68l7yUESFtvhyNN3vnJFr7xSHVqwJDSFd44dduRvuJUrEgYBHxV2Cim/SsSBRPuy7V9KdwENcVtaoSiuhK9sqbW1lrSvVtiiUShRyoSohmUyYDAK4TAZvSISG7f4+EKW/Ny98sJzEW9WlaOfgQL59bQJqJy2BuuG4tGxTGchiP/Y3pr/1iecGUn068M6VQfiasom8sZDnb10i0DpauRL2toUMZwjQQ49b4FzXyuTWom2hGjzr+aDhXujmuk9lext/HzQCNrj6MmDR5j1sPHCiqssVb/+D4ROnVJl15QNFRP8dE7yNud9+7rFane7fgTkXnsTfkEbLrPVcdStjWUggvjHx2OVacl+l2aqNFrMNzq0NL7R73B9yHeDV03WR6oNWeGix8dBiSky57xqItnZDddhG1vggz/pWYWk5L8z/hlITLJgfzaRXp6Cys6/jN4rOut3tnCnYt9z968Dc1sHMv9QXz4ps/qY4RecxbVCI/SbgcfxcFbwAO+1n0boQp3ILuNBukR2IBYlMqx3AKmnuhbaNDGNfSCBFJWWIaFK+eXf94PYa1AO6o+7fHYV99dXRvY09gsPw7zGwXtgqTYtkEtFv1/+ucv382fJWLVmYqENpKOMpxQmkXmE85ld7j1oTPsceUrWQ4wAVSlCbwK/Qov2aflxzYjWhhdYW+vsQm3BFbvJ8/+68eiwBRMCqIWJh7MYMbBTW2TdQ9ls7F7f7Xn7LDTr3j526xOnbL1x87Fh2S0dBuYpRqkP83qY/Y8Lr3yrWhL+vTdZoUBP6RFgob1uBZYux17DT36fKzEWQ0kwcjo01+tY3jr2HD/6RA6uCVFPmIkNH6GI85zhvSu3gqXdYkdGTZJMPL9nt5kfvl5nZ6yyminq+NLL23lz4Kmh7Da/5+3DGmltFXs3Pz+foUB3GhCt1gtS9MCIi18y9TYGtYd6Wfx4Y8szGlk4lz23JjSCBYP7lFMss/cvJJ3f3a5N5/gRZ5088FPhK6NLgQAYlpsh1ssirUVFRLFmyhN8+impUs0q1Bq/HuuP9WPdG/baxRaiy/1OjB7g6VlQkHcwP9TxkF8lM7S/8d/Zk/emDg+XPco3lpdL94JWl5XgdOIHX/hOo7vHLewPZheBApiWmEBcXh06nk2vkefPmcWr53Abn25Qg1RSN13L6C/27zUkoCXh/l/YJpnrsY1r6+KLTB4fU+G7xP4ev1PS2sFCWJFypghaaXvntcuIXv1ln3s0JUs2GTujaKTjR0HLvXt8hAS96HePfN5/POX1wcL236g+q+UrodcGBfJ+Yws8//yxrOjAwkPA2vnz2z+pvSQWsb4SuWUGq2dBxOp0qJc/ts4tBvWYMcL/COynDr54+OLjRfWZz4Y/7+8jFxc5cPfNWb8PV1RWtVktqaqq8ORga2UkuGx80SDUbWrzwXpcZIzVBnltaORSwNFW3+1Tc4Keb0lFT4Gv2k3grkxc++KbqJ18PLTs/e1MOUi279L1vrm3KnBpqU6fzLgN2hk9tfeT0xUIfRVxeu6jTBwYvac4AzYF/ddEaOWWJ/Lxt9Tfoho954IjcnDnWgR49+IeIp3wvn/rp1uP6nHL79qfjhzZ+V9LAaE2BF7VyllJLt6HPCZ/+U7Vbc5p1Bvpp2ltPxqQF77mY773k9MHBUc1ZwfraNgT/ZwWppsy3FvSXk+d3+D235fJLBS0MklI98fe9T4lvxB+KCPhbx3ZTmJ7ypwappkxWhu7Zc7tzmZ1tpNrGsKDcbHtTYTZNelCzbsqg/9dt/h+MIz7khw/T6wAAAABJRU5ErkJggg==" + }, + { + "document_name": "practice_cert", + "document_image": "" + } + ], + "form_name": "Business Info", + "form_id": "13" + }, + { + "business_is_pd_visited": "no", + "business_is_pd_visited_pic": "", + "form_name": "Business Assets", + "form_id": "22" + }, + { + "form_name": "Stock Info", + "form_id": "11", + "images": [ + { + "image": "data:image/png;base64,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" + }, + { + "image": "data:image/png;base64,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" + }, + { + "image": "data:image/png;base64,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" + }, + { + "image": "data:image/png;base64,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" + } + ] + } + ], + "form_id": "BUSINESS_GROUP", + "form_name": "Business Group Info" + }, + { + "form_id": "19", + "form_name": "Neighbourhood Details", + "neighbourhood_list": [ + { + "neighbourhood_name": "sdf", + "do_know": "No", + "did_not_know_the_business_operation": "", + "how_long_do_know_in_year": 3, + "how_long_do_know_in_month": 1, + "organisation_owner": "", + "other_organisation_owner": "", + "did_not_know_the_owner": true + } + ] + }, + { + "form_name": "Final Remarks", + "form_id": "20", + "outlet_location": "", + "is_competition": "yes", + "demolition_activity": "yes", + "sealing_activity": "no", + "appx_outlet_or_stores": 23442, + "comment_of_demolition_activity": "sdf", + "comment_of_sealing_activity": "" + }, + { + "final_comments": "Final Check", + "form_id": "SUBMIT", + "form_name": "Submit" + } + ] +} \ No newline at end of file diff --git a/src/assets/shapes.svg b/src/assets/shapes.svg new file mode 100755 index 0000000..d370b4d --- /dev/null +++ b/src/assets/shapes.svg @@ -0,0 +1 @@ + diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100755 index 0000000..3612073 --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100755 index 0000000..7b4f817 --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,16 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/src/global.scss b/src/global.scss new file mode 100755 index 0000000..53b58f2 --- /dev/null +++ b/src/global.scss @@ -0,0 +1,426 @@ +/* + * App Global CSS + * ---------------------------------------------------------------------------- + * Put style rules here that you want to apply globally. These styles are for + * the entire app and not just one component. Additionally, this file can be + * used as an entry point to import other CSS/Sass files to be included in the + * output CSS. + * For more information on global stylesheets, visit the documentation: + * https://ionicframework.com/docs/layout/global-stylesheets + */ + +/* Core CSS required for Ionic components to work properly */ +@import "~@ionic/angular/css/core.css"; + +/* Basic CSS for apps built with Ionic */ +@import "~@ionic/angular/css/normalize.css"; +@import "~@ionic/angular/css/structure.css"; +@import "~@ionic/angular/css/typography.css"; +@import '~@ionic/angular/css/display.css'; + +/* Optional CSS utils that can be commented out */ +@import "~@ionic/angular/css/padding.css"; +@import "~@ionic/angular/css/float-elements.css"; +@import "~@ionic/angular/css/text-alignment.css"; +@import "~@ionic/angular/css/text-transformation.css"; +@import "~@ionic/angular/css/flex-utils.css"; + +//STARTED IONIC 3 CSS +// http://ionicframework.com/docs/theming/ + + +// App Global Sass +// -------------------------------------------------- +// Put style rules here that you want to apply globally. These +// styles are for the entire app and not just one component. +// Additionally, this file can be also used as an entry point +// to import other Sass files to be included in the output CSS. +// +// Shared Sass variables, which can be used to adjust Ionic's +// default Sass variables, belong in "theme/variables.scss". +// +// To declare rules for a specific mode, create a child rule +// for the .md, .ios, or .wp mode classes. The mode class is +// automatically applied to the element in the app. +$header_color:#8835C3; +$sidemenu_color:#19152C; + +@font-face{ + font-family: Roboto; + src: url("assets/fonts/Roboto-Light.ttf"); + } + + ion-icon { + &[class*="fn-"] { + mask-size: contain; + mask-position: 50% 50%; + mask-repeat: no-repeat; + background: currentColor; + width: 1em; + height: 1em; + } + + &[class*="fn-save"] { + mask-image: url(assets/icon/md-save.svg); + } + + &[class*="fn-pdf"] { + mask-image:url(assets/icon/PDF_file_icon.svg); + } + + } + ion-icon{ + &[class*="svg-"] { + mask-size: contain; + mask-position: 50% 50%; + mask-repeat: no-repeat; + background: currentColor; + width: 1em; + height: 1em; + } + &[class*="svg-pdf"] { + mask-image:url(assets/icon/PDF_file_icon.svg); + } + } + + *{ + font-family: sans-serif; + // font-size: 16px; + } + + .align-center { + text-align: center; + } + + .highlight { + background-color: #f4f4f4; + } + + .center { + display: block; + margin: 0 auto; + } + + .vertical-center { + position: absolute; + top: 50%; + transform: translateY(-50%); + } + + .top-radius { + border-radius: 10% 10% 0 0; + } + + .bottom-radius { + border-radius: 0 0 10% 10%; + } + + .round { + border-radius: 50%; + } + + .transparent-header { + // This is just to make the header transparent and button/icon with white color + .toolbar-content, + .back-button { + color: white; + } + .toolbar-background, + ion-navbar, + ion-header { + background: transparent !important; + background-color: transparent !important; + } + .header-md::after, + .toolbar-background-ios { + background-image: none; + border-bottom: 0; + } + .header-ios .toolbar-background-ios, + .footer-ios .toolbar-background-ios { + border: 0; + } + .toolbar-container, + ion-toolbar,.ion-toolbar,.ion-header{ + --font-weight: bold; + --font-size: 24px; + } + // --- + } + + // right side menu + #menu-right { + button { + padding-left: 16px; + } + ion-content { + background: #00d2ff; /* fallback for old browsers */ + background: -webkit-linear-gradient(to left, #3a7bd5, #00d2ff); /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to left, #3a7bd5, #00d2ff); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ + + } + .menu-inner { + width: 10vh; + } + @media screen and (orientation: landscape) { + .menu-inner { + width: 15vh; + } + } + .active-menu-item { + position: absolute; + border-top: 6px solid transparent; + border-bottom: 6px solid transparent; + border-left: 6px solid #ffffff; + } + .label { + display: flex; + align-items: center; + } + .list-md[no-lines] .item-block, + .list-md[no-lines] ion-item-options, + .list-md[no-lines] .item .item-inner, + .list-ios[no-lines] .item-block, + .list-ios[no-lines] ion-item-options, + .list-ios[no-lines] .item .item-inner { + padding: .3rem 0; + background: transparent; + color: white; + } + ion-icon { + line-height: 1; + } + } + + .icon-badge { + top: 0px; + right: 0px; + background: #E00201; + color: white; + font-size: 12px; + position: absolute; + padding: 5px 8px; + border-radius: 15px; + } + + // Sidemenu with avatar + #menu-avatar { + .user-avatar { + max-width: 125px;height: 125px; + padding: .5em; + } + h3, + .label { + color: white; + font-weight: bold; + font-size: 14px; + } + .item { + background: transparent; + } + ion-content { + + background: #649173; /* fallback for old browsers */ + background: -webkit-linear-gradient(to left, #DBD5A4, #649173); /* Chrome 10-25, Safari 5.1-6 */ + background: linear-gradient(to left, #DBD5A4, #649173); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ + + + } + .menu-inner { + background: rgba(255, 255, 255, .3); + } + } + // Material Design Sidemenu + #menu-material { + ion-content { + // padding: 5px 15px; + + .name { + font-weight: 500; + margin-top: 0px; + margin-left: 0px; + font-size: 24px; + } + .e-mail { + margin-top: 0; + margin-bottom: 5px; + } + } + .user-avatar { + max-width: 125px;height: 125px; + padding: .5em; + height: 12vh; + } + h3, + .label + { + color: #111; + font-weight: 500; + } + .menu-inner{ + box-shadow: 0 8px 10px -5px rgba(0,0,0,.2), 0 16px 24px 2px rgba(0,0,0,.14), 0 6px 30px 5px rgba(0,0,0,.12) !important; + } + .menu-header{ + background-image: url('assets/img/misc/sidemenubg.jpg'); + background-size: cover; + color: white; + padding-bottom: 15px; + } + .item-md{ + background-color: rgba(255, 255, 255, 0.28) !important; + } + ion-icon { + color: #111; + } + + } + // Dark Design Sidemenu + #menu-dark{ + .sidemenuHeader{ + ion-toolbar{ + .toolbar-background{background: $sidemenu_color;border:$sidemenu_color; } + ion-buttons{ + button{color: #fff;} + } + .toolbar-content{ + ion-item{background: transparent;color: #fff; + ion-avatar{background: #fff;color:$header_color;border-radius:50%;text-align: center; + h2{margin: 0;font-size: 25px;line-height: 40px;color: $sidemenu_color;} + } + h2{font-size: 12px;font-weight: normal;} + p{font-size: 11px;font-weight: normal;color:#fff;} + } + } + } + } + .menu{background: $sidemenu_color; + ion-list{ + button{background: transparent;color: #C9C7D3;font-size: 13px; + .item-inner{border-bottom: 1px solid #474456 !important; + img{width: 30px;height: 30px;vertical-align: middle;margin-right: 10px;margin-bottom: 5px;} + } + } + } + } + + } + /* FOR ALERT */ + .buttoncss{ + color:rgb(13, 149, 212); + //background: green + button.alert-button:nth-child(1){ + color: red; + border:1px solid red; + border-radius: 10px; + position: relative; + right:20px; + font-size: 14px; + } + + button.alert-button:nth-child(2){ + color: green; + border:1px solid green; + border-radius: 10px; + } + } + .prompt_alert{ + color:darkgreen; + + button.alert-button{ + color:green; + border:1px solid green; + border-radius: 10px; + } + input.alert-input{ + border:1px solid blueviolet; + } + } + .complete_alert{ + color:darkblue; + .alert-message{ + color:olivedrab + } + button.alert-button:nth-child(1){ + // margin-bottom:20px; + color: red; + border:1px solid red; + border-radius: 10px; + width: 85%; + text-align: center; + // position: relative; + // right:20px; + font-size: 14px; + } + + button.alert-button:nth-child(2){ + margin-top:10px; + color: darkgreen; + // border:1px solid green; + // border-radius: 10px; + // background-color: gray; + // padding:5px; + // border: 1px solid blue; + width: 60px; + } + button.alert-button:nth-child(3){ + margin-top:8px; + color: darkred; + // border:1px solid green; + // border-radius: 10px; + // background-color: gray; + // padding:5px; + // border: 1px solid blue; + // width: 60px; + } + } + + /* END OF ALERT*/ + + + + // .prompt_alert .alert-input{ + // border-bottom: none!important; + // caret-color: #F58282; + // } + // .prompt_alert .alert-input-group:before { + // // content: '#'; + // display: inline-block; + // //float: right; + // line-height: 3.5; + // color: black; + // } + // .prompt_alert .alert-input-wrapper { + // display: flex; + // padding-right: 3px; + // } + .applicant_free_text{ + text-transform: capitalize; + } + .mat-form-field-appearance-legacy .mat-form-field-label{ + white-space: pre-wrap; + } + .mat-form-field-appearance-outline .mat-form-field-label{ + white-space: pre-wrap; + } + .mat-form-field { + contain: content; + overflow: -webkit-paged-x; + } + // NUMBER TO WORDS CLASS + p.numToWords { + /* justify-content: flex-end; */ + /* align-items: flex-end; */ + /* align-self: flex-end; */ + float: right; + margin: 0px; + position: relative; + bottom: 15px; + font-size: 12px; + color: gray; +} + @import "theme/mapAddress"; + @import "theme/imgCompleteModal"; + @import "theme/officer-notes-modal"; + @import "theme/imageNameModal"; + @import "../node_modules/@angular/material/prebuilt-themes/deeppurple-amber.css"; + @import "theme/filter-modal" \ No newline at end of file diff --git a/src/index.html b/src/index.html new file mode 100755 index 0000000..6975d0e --- /dev/null +++ b/src/index.html @@ -0,0 +1,30 @@ + + + + + + Ionic App + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main.ts b/src/main.ts new file mode 100755 index 0000000..91ec6da --- /dev/null +++ b/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.log(err)); diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100755 index 0000000..14769a1 --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,66 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** IE10 and IE11 requires the following for NgClass support on SVG elements */ +// import 'classlist.js'; // Run `npm install --save classlist.js`. + +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags.ts'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +import './zone-flags.ts'; + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ + +import 'zone.js/dist/zone'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/src/test.ts b/src/test.ts new file mode 100755 index 0000000..1631789 --- /dev/null +++ b/src/test.ts @@ -0,0 +1,20 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/src/theme/filter-modal.scss b/src/theme/filter-modal.scss new file mode 100755 index 0000000..85fa9bf --- /dev/null +++ b/src/theme/filter-modal.scss @@ -0,0 +1,68 @@ +.filterModal{ + padding: 6.4%; + // padding: 30px; + background-color: rgba(0, 0, 0, 0.56); + // padding: 30px; + color:red; + // filter:blur(5px); + //color:lightcyan; + // background-color:gray; + .modal-wrapper { + // border-radius: 7px; + // background: rgba(0, 0, 0, 0.5); + // color: gray; + + height: 85% !important; + width:100% !important; + // margin-top: 13.5%; + border-radius: 10px; + margin-top:7%; + + mat-card{ + // background-color:rgb(252, 252, 161); + background-color:white; + box-shadow: 2px 2px lavender; + border-radius: 5px; + min-height: 13em; + // height: 16.5em; + max-height: 16.5em; + border:1px solid lavender; + } + .mat-card-title{ + + font-weight: bold; + font-size: 16px; + color:green; + } + mat-card-content{ + margin-left: 4%; + } + ion-item{ + // background-color:rgb(252, 252, 161); + background-color: lightcyan; + } + // margin-right: 15%; + + button{ + font-size: 12px; + // height: 40px; + color:red; + // margin-bottom: 10px; + position: relative; + bottom:0.5em; + } + // input{ + // // border:1px solid blueviolet; + // } + mat-form-field{ + width: 100%; + margin-top: 3%; + } + mat-radio-button{ + margin-top: 2%; + } + + + } + + } \ No newline at end of file diff --git a/src/theme/imageNameModal.scss b/src/theme/imageNameModal.scss new file mode 100755 index 0000000..0f33f81 --- /dev/null +++ b/src/theme/imageNameModal.scss @@ -0,0 +1,100 @@ +.imageDecisionModal{ + padding: 7.4%; + --width: 100%; + --height: 11em; + --border-radius: 5px; + --max-width: 400px; + // box-shadow: 3px 3px lavenderblush; + ion-item{ + // background-color:rgb(252, 252, 161); + padding: 10px; + justify-content: center; + font-weight: bold; + color: darkblue; + } + ion-icon{ + font-size: 35px; + } +} +.imageNameModal{ + padding: 6.4%; + // color: red; + // --width: 100%; + // --min-height: 12em; + // height: auto !important; + // --max-height: 16.5em; + // --border: 1px solid lavender !important; + --border-radius: 5px; + --height: 100%; + --max-height: 16.5em; + // --background: #a2a3a300; + --background: #ffffff00; + // --box-shadow: 2px 2px lavender; + // filter:blur(5px); + //color:lightcyan; + // background-color:gray; + + .modal-wrapper { + // border-radius: 7px; + // background: rgba(0, 0, 0, 0.5); + // color: gray; + + // height: 98% !important; + // width:10% !important; + // margin-top: 13.5%; + margin-bottom:10%; + // background-color: #a2a3a3; + // min-height: 12em; + // max-height: 16.5em; + + .mat-card{ + // background-color:rgb(252, 252, 161); + // background-color:white; + // box-shadow: 2px 2px lavender; + // border-radius: 5px; + // min-height: 13em; + // // height: 16.5em; + // max-height: 16.5em; + // border:1px solid lavender; + width: 100%; + min-height: 13em; + max-height: 16.5em; + } + .mat-card-title{ + + font-weight: bold; + font-size: 16px; + color:green; + } + mat-card-content{ + margin-left: 4%; + } + ion-item{ + // background-color:rgb(252, 252, 161); + background-color: lightcyan; + } + // margin-right: 15%; + + button{ + font-size: 35px; + // height: 40px; + color:green; + // margin-bottom: 10px; + position: relative; + bottom:0.5em; + } + // input{ + // // border:1px solid blueviolet; + // } + mat-form-field{ + width: 100%; + margin-top: 3%; + } + mat-radio-button{ + margin-top: 2%; + } + + + } + + } \ No newline at end of file diff --git a/src/theme/imgCompleteModal.scss b/src/theme/imgCompleteModal.scss new file mode 100755 index 0000000..9f1afc1 --- /dev/null +++ b/src/theme/imgCompleteModal.scss @@ -0,0 +1,25 @@ +.pdimagecompleteModal { + padding: 30px; + color:red; + // filter:blur(5px); + //color:lightcyan; + // background-color:gray; + --background-color: blanchedalmond; + .modal-wrapper { + // border-radius: 7px; + // background: rgba(0, 0, 0, 0.5); + // color: gray; + + height: 98% !important; + width:105% !important; + margin-top: 9%; + font-style: normal; + //margin-right: 15%; + ion-content{ + background-color:blanchedalmond; + } + + + } + +} \ No newline at end of file diff --git a/src/theme/mapAddress.scss b/src/theme/mapAddress.scss new file mode 100755 index 0000000..945c340 --- /dev/null +++ b/src/theme/mapAddress.scss @@ -0,0 +1,50 @@ +.mapAddress { + padding: 30px; + + // filter:blur(5px); + //color:lightcyan; + // background-color:gray; + .modal-wrapper { + border-radius: 7px; + // background: rgba(0, 0, 0, 0.5); + // color: gray; + + height: 70% !important; + // margin-top: 25%; + ion-content{ + --background:blanchedalmond; + } + form{ + // margin-top:20px; + //margin-bottom: + } + mat-label{ + margin-bottom: 20px; + color:darkgreen; + font-weight: bold; + font-size:85%; + padding:0 10px 0 10px; + } + ion-list,.list-md{ + background:blanchedalmond; + .login-top{ + margin-top: -20px; + background: #4eb5e2; + padding-bottom: 10px; + margin-bottom: 25px; + } + img { + margin-top: 15%; + max-width: 30%; + } + + .item{ + + background: none !important; + button{ + height:4rem !important; + } + } + } + } +} \ No newline at end of file diff --git a/src/theme/officer-notes-modal.scss b/src/theme/officer-notes-modal.scss new file mode 100755 index 0000000..caf36d8 --- /dev/null +++ b/src/theme/officer-notes-modal.scss @@ -0,0 +1,47 @@ +.officerNotesModal{ + padding: 4.5%; + // padding: 30px; + color:red; + // filter:blur(5px); + //color:lightcyan; + // background-color:gray; + .modal-wrapper { + // border-radius: 7px; + // background: rgba(0, 0, 0, 0.5); + // color: gray; + + height: 20em !important; + // width:10% !important; + // margin-top: 13.5%; + margin-top:13%; + ion-content{ + --background: lightcyan; + } + + border-radius: 20px; + + mat-card{ + // background-color:rgb(252, 252, 161); + --background: lightcyan; + height: 20em; + } + mat-card-title{ + + font-weight: bold; + font-size: 16px; + } + ion-item{ + // background-color:rgb(252, 252, 161); + background-color: lightcyan; + } + // margin-right: 15%; + + // ion-button{ + // font-size: 35px; + // height: 40px; + // } + + + } + + } \ No newline at end of file diff --git a/src/theme/variables.scss b/src/theme/variables.scss new file mode 100755 index 0000000..b65b3b3 --- /dev/null +++ b/src/theme/variables.scss @@ -0,0 +1,100 @@ +// Ionic Variables and Theming. For more info, please see: +// http://ionicframework.com/docs/theming/ + +/** Ionic CSS Variables **/ +:root { + /** primary **/ + --ion-color-primary: #3880ff; + --ion-color-primary-rgb: 56, 128, 255; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255, 255, 255; + --ion-color-primary-shade: #3171e0; + --ion-color-primary-tint: #4c8dff; + + /** secondary **/ + --ion-color-secondary: #0cd1e8; + --ion-color-secondary-rgb: 12, 209, 232; + --ion-color-secondary-contrast: #ffffff; + --ion-color-secondary-contrast-rgb: 255, 255, 255; + --ion-color-secondary-shade: #0bb8cc; + --ion-color-secondary-tint: #24d6ea; + + /** tertiary **/ + --ion-color-tertiary: #7044ff; + --ion-color-tertiary-rgb: 112, 68, 255; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255, 255, 255; + --ion-color-tertiary-shade: #633ce0; + --ion-color-tertiary-tint: #7e57ff; + + /** success **/ + --ion-color-success: #10dc60; + --ion-color-success-rgb: 16, 220, 96; + --ion-color-success-contrast: #ffffff; + --ion-color-success-contrast-rgb: 255, 255, 255; + --ion-color-success-shade: #0ec254; + --ion-color-success-tint: #28e070; + + /** warning **/ + --ion-color-warning: #ffce00; + --ion-color-warning-rgb: 255, 206, 0; + --ion-color-warning-contrast: #ffffff; + --ion-color-warning-contrast-rgb: 255, 255, 255; + --ion-color-warning-shade: #e0b500; + --ion-color-warning-tint: #ffd31a; + + /** danger **/ + --ion-color-danger: #f04141; + --ion-color-danger-rgb: 245, 61, 61; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255, 255, 255; + --ion-color-danger-shade: #d33939; + --ion-color-danger-tint: #f25454; + + /** dark **/ + --ion-color-dark: #222428; + --ion-color-dark-rgb: 34, 34, 34; + --ion-color-dark-contrast: #ffffff; + --ion-color-dark-contrast-rgb: 255, 255, 255; + --ion-color-dark-shade: #1e2023; + --ion-color-dark-tint: #383a3e; + + /** medium **/ + --ion-color-medium: #989aa2; + --ion-color-medium-rgb: 152, 154, 162; + --ion-color-medium-contrast: #ffffff; + --ion-color-medium-contrast-rgb: 255, 255, 255; + --ion-color-medium-shade: #86888f; + --ion-color-medium-tint: #a2a4ab; + + /** light **/ + --ion-color-light: #f4f5f8; + --ion-color-light-rgb: 244, 244, 244; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0, 0, 0; + --ion-color-light-shade: #d7d8da; + --ion-color-light-tint: #f5f6f9; + + --ion-color-optblue: #E00201; + --ion-color-optblue-rgb: 224,2,1; + --ion-color-optblue-contrast: #ffffff; + --ion-color-optblue-contrast-rgb: 255,255,255; + --ion-color-optblue-shade: #c50201; + --ion-color-optblue-tint: #e31b1a; + + --ion-font-family: 'Roboto'; +} +.ion-color-optblue{ + --ion-color-base: var(--ion-color-optblue) !important; + --ion-color-base-rgb: var(--ion-color-optblue-rgb) !important; + --ion-color-contrast: var(--ion-color-optblue-contrast) !important; + --ion-color-contrast-rgb: var(--ion-color-optblue-contrast-rgb) !important; + --ion-color-shade: var(--ion-color-optblue-shade) !important; + --ion-color-tint: var(--ion-color-optblue-tint) !important; +} +// $colors:( +// optblue: #E00201, +// ); +$header_color:#8835C3; +$sidemenu_color:#19152C; + diff --git a/src/zone-flags.ts b/src/zone-flags.ts new file mode 100755 index 0000000..e999ae9 --- /dev/null +++ b/src/zone-flags.ts @@ -0,0 +1,5 @@ +/** + * Prevents Angular change detection from + * running with certain Web Component callbacks + */ +(window as any).__Zone_disable_customElements = true; diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100755 index 0000000..31f8397 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "src/test.ts", + "src/**/*.spec.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100755 index 0000000..966fd2e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "module": "esnext", + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "importHelpers": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2018", + "dom" + ] + }, + "angularCompilerOptions": { + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true + } +} diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100755 index 0000000..ff19b95 --- /dev/null +++ b/tsconfig.spec.json @@ -0,0 +1,19 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts", + "src/zone-flags.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/tslint.json b/tslint.json new file mode 100755 index 0000000..172a40e --- /dev/null +++ b/tslint.json @@ -0,0 +1,88 @@ +{ + "extends": "tslint:recommended", + "rulesDirectory": [ + "codelyzer" + ], + "rules": { + "array-type": false, + "arrow-parens": false, + "deprecation": { + "severity": "warn" + }, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "interface-name": false, + "max-classes-per-file": false, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-consecutive-blank-lines": false, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-empty": false, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-switch-case-fall-through": true, + "no-use-before-declare": true, + "no-var-requires": false, + "object-literal-key-quotes": [ + true, + "as-needed" + ], + "object-literal-sort-keys": false, + "ordered-imports": false, + "quotemark": [ + true, + "single" + ], + "trailing-comma": false, + "no-output-on-prefix": true, + "no-inputs-metadata-property": true, + "no-host-metadata-property": true, + "no-input-rename": true, + "no-output-rename": true, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true, + "one-variable-per-declaration": false, + "component-class-suffix": [true, "Page", "Component"], + "directive-class-suffix": true, + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "page", + "kebab-case" + ] + } +}