Initial commit
34
.gitignore
vendored
Normal file → Executable file
@ -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
|
||||
|
||||
187
angular.json
Executable file
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
12
browserslist
Executable file
@ -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'.
|
||||
18
build.json
Executable file
@ -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": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
127
config.xml
Executable file
@ -0,0 +1,127 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<widget id="com.sineedge.pdgvendor" version="0.0.4" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
|
||||
<name>PD Genie Field Visit</name>
|
||||
<description>info@pdgenie.com</description>
|
||||
<author email="info@pdgenie.com" href="https://pdgenie.com">PD Genie</author>
|
||||
<content src="index.html" />
|
||||
<access origin="*" />
|
||||
<allow-intent href="http://*/*" />
|
||||
<allow-intent href="https://*/*" />
|
||||
<allow-intent href="tel:*" />
|
||||
<allow-intent href="sms:*" />
|
||||
<allow-intent href="mailto:*" />
|
||||
<allow-intent href="geo:*" />
|
||||
<preference name="ScrollEnabled" value="false" />
|
||||
<preference name="android-minSdkVersion" value="22" />
|
||||
<preference name="BackupWebStorage" value="none" />
|
||||
<preference name="SplashMaintainAspectRatio" value="true" />
|
||||
<preference name="FadeSplashScreenDuration" value="300" />
|
||||
<preference name="SplashShowOnlyFirstTime" value="false" />
|
||||
<preference name="SplashScreen" value="screen" />
|
||||
<preference name="SplashScreenDelay" value="3000" />
|
||||
<preference name="ShowSplashScreenSpinner" value="false" />
|
||||
<platform name="android">
|
||||
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<application android:networkSecurityConfig="@xml/network_security_config" />
|
||||
</edit-config>
|
||||
<resource-file src="resources/android/icon/drawable-xxxhdpi-icon.png" target="app/src/main/res/mipmap/icon.png" />
|
||||
<resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" />
|
||||
<resource-file src="google-services.json" target="app/google-services.json" />
|
||||
<allow-intent href="market:*" />
|
||||
<icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
|
||||
<icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
|
||||
<icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
|
||||
<icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
|
||||
<icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
|
||||
<icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
|
||||
<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
|
||||
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
|
||||
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
|
||||
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
|
||||
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
|
||||
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
|
||||
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
|
||||
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
|
||||
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
|
||||
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
|
||||
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
|
||||
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
|
||||
</platform>
|
||||
<platform name="ios">
|
||||
<allow-intent href="itms:*" />
|
||||
<allow-intent href="itms-apps:*" />
|
||||
<icon height="57" src="resources/ios/icon/icon.png" width="57" />
|
||||
<icon height="114" src="resources/ios/icon/icon@2x.png" width="114" />
|
||||
<icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
|
||||
<icon height="58" src="resources/ios/icon/icon-small@2x.png" width="58" />
|
||||
<icon height="87" src="resources/ios/icon/icon-small@3x.png" width="87" />
|
||||
<icon height="20" src="resources/ios/icon/icon-20.png" width="20" />
|
||||
<icon height="40" src="resources/ios/icon/icon-20@2x.png" width="40" />
|
||||
<icon height="60" src="resources/ios/icon/icon-20@3x.png" width="60" />
|
||||
<icon height="48" src="resources/ios/icon/icon-24@2x.png" width="48" />
|
||||
<icon height="55" src="resources/ios/icon/icon-27.5@2x.png" width="55" />
|
||||
<icon height="29" src="resources/ios/icon/icon-29.png" width="29" />
|
||||
<icon height="58" src="resources/ios/icon/icon-29@2x.png" width="58" />
|
||||
<icon height="87" src="resources/ios/icon/icon-29@3x.png" width="87" />
|
||||
<icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
|
||||
<icon height="80" src="resources/ios/icon/icon-40@2x.png" width="80" />
|
||||
<icon height="120" src="resources/ios/icon/icon-40@3x.png" width="120" />
|
||||
<icon height="88" src="resources/ios/icon/icon-44@2x.png" width="88" />
|
||||
<icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
|
||||
<icon height="100" src="resources/ios/icon/icon-50@2x.png" width="100" />
|
||||
<icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
|
||||
<icon height="120" src="resources/ios/icon/icon-60@2x.png" width="120" />
|
||||
<icon height="180" src="resources/ios/icon/icon-60@3x.png" width="180" />
|
||||
<icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
|
||||
<icon height="144" src="resources/ios/icon/icon-72@2x.png" width="144" />
|
||||
<icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
|
||||
<icon height="152" src="resources/ios/icon/icon-76@2x.png" width="152" />
|
||||
<icon height="167" src="resources/ios/icon/icon-83.5@2x.png" width="167" />
|
||||
<icon height="172" src="resources/ios/icon/icon-86@2x.png" width="172" />
|
||||
<icon height="196" src="resources/ios/icon/icon-98@2x.png" width="196" />
|
||||
<icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024" />
|
||||
<splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
|
||||
<splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
|
||||
<splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
|
||||
<splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
|
||||
<splash height="1125" src="resources/ios/splash/Default-Landscape-2436h.png" width="2436" />
|
||||
<splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
|
||||
<splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
|
||||
<splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
|
||||
<splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
|
||||
<splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
|
||||
<splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
|
||||
<splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
|
||||
<splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
|
||||
<splash height="2436" src="resources/ios/splash/Default-2436h.png" width="1125" />
|
||||
<splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
|
||||
</platform>
|
||||
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
|
||||
<plugin name="cordova-plugin-statusbar" spec="2.4.2" />
|
||||
<plugin name="cordova-plugin-device" spec="2.0.2" />
|
||||
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
|
||||
<plugin name="cordova-plugin-ionic-webview" spec="^4.0.0" />
|
||||
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
|
||||
<plugin name="cordova-plugin-android-permissions" spec="1.0.2" />
|
||||
<plugin name="cordova-plugin-app-version" spec="0.1.9" />
|
||||
<plugin name="cordova-plugin-mauron85-background-geolocation" spec="3.0.1">
|
||||
<variable name="ICON" value="@mipmap/icon" />
|
||||
</plugin>
|
||||
<plugin name="cordova-plugin-camera" spec="4.1.0" />
|
||||
<plugin name="cordova-plugin-fingerprint-aio" spec="3.0.1" />
|
||||
<plugin name="cordova-plugin-geolocation" spec="4.0.2" />
|
||||
<plugin name="cordova-plugin-request-location-accuracy" spec="2.3.0" />
|
||||
<plugin name="phonegap-plugin-push" spec="2.3.0" />
|
||||
<plugin name="cordova-sqlite-storage" spec="4.0.0" />
|
||||
<plugin name="cordova-plugin-market" spec="1.2.0" />
|
||||
<plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" spec="5.0.4">
|
||||
<variable name="GOOGLE_API_KEY_FOR_ANDROID" value="AIzaSyA3lYDYxwtn5vLSl45SOKbtK7G6cEyXGr0" />
|
||||
<variable name="OKHTTP_VERSION" value="3.12.0" />
|
||||
</plugin>
|
||||
<plugin name="cordova-plugin-document-scanner" spec="4.2.3" />
|
||||
<plugin name="cordova-plugin-file" spec="6.0.2" />
|
||||
<plugin name="cordova.plugins.diagnostic" spec="5.0.1">
|
||||
<variable name="ANDROID_SUPPORT_VERSION" value="28.+" />
|
||||
</plugin>
|
||||
<engine name="android" spec="^9.0.0" />
|
||||
</widget>
|
||||
28
e2e/protractor.conf.js
Executable file
@ -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 } }));
|
||||
}
|
||||
};
|
||||
19
e2e/src/app.e2e-spec.ts
Executable file
@ -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');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
15
e2e/src/app.po.ts
Executable file
@ -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();
|
||||
}
|
||||
}
|
||||
13
e2e/tsconfig.json
Executable file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../out-tsc/app",
|
||||
"module": "commonjs",
|
||||
"target": "es5",
|
||||
"types": [
|
||||
"jasmine",
|
||||
"jasminewd2",
|
||||
"node"
|
||||
]
|
||||
}
|
||||
}
|
||||
40
google-services.json
Executable file
@ -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"
|
||||
}
|
||||
7
ionic.config.json
Executable file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "pd_officer_v4",
|
||||
"integrations": {
|
||||
"cordova": {}
|
||||
},
|
||||
"type": "angular"
|
||||
}
|
||||
31
karma.conf.js
Executable file
@ -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
|
||||
});
|
||||
};
|
||||
15906
package-lock.json
generated
Executable file
150
package.json
Executable file
@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
BIN
releaseApk/No Use/pd-officer.jks
Executable file
19
releaseApk/Problem.txt
Executable file
@ -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 {
|
||||
|
||||
|
||||
33
releaseApk/ReadMe.txt
Executable file
@ -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)
|
||||
|
||||
<we have already jks file in releaseApk folder do not run this command >
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
releaseApk/pd-genie-officer.jks
Executable file
365
report.20200205.192559.19684.0.001.json
Executable file
@ -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<v8::String>) [/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"
|
||||
]
|
||||
}
|
||||
365
report.20200205.192809.19728.0.001.json
Executable file
@ -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<v8::String>) [/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"
|
||||
]
|
||||
}
|
||||
8
resources/README.md
Executable file
@ -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/
|
||||
BIN
resources/android/icon/drawable-hdpi-icon.png
Executable file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
resources/android/icon/drawable-ldpi-icon.png
Executable file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/android/icon/drawable-mdpi-icon.png
Executable file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
resources/android/icon/drawable-xhdpi-icon.png
Executable file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
resources/android/icon/drawable-xxhdpi-icon.png
Executable file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
resources/android/icon/drawable-xxxhdpi-icon.png
Executable file
|
After Width: | Height: | Size: 13 KiB |
BIN
resources/android/splash/drawable-land-hdpi-screen.png
Executable file
|
After Width: | Height: | Size: 20 KiB |
BIN
resources/android/splash/drawable-land-ldpi-screen.png
Executable file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
resources/android/splash/drawable-land-mdpi-screen.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/android/splash/drawable-land-xhdpi-screen.png
Executable file
|
After Width: | Height: | Size: 36 KiB |
BIN
resources/android/splash/drawable-land-xxhdpi-screen.png
Executable file
|
After Width: | Height: | Size: 49 KiB |
BIN
resources/android/splash/drawable-land-xxxhdpi-screen.png
Executable file
|
After Width: | Height: | Size: 63 KiB |
BIN
resources/android/splash/drawable-port-hdpi-screen.png
Executable file
|
After Width: | Height: | Size: 21 KiB |
BIN
resources/android/splash/drawable-port-ldpi-screen.png
Executable file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
resources/android/splash/drawable-port-mdpi-screen.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/android/splash/drawable-port-xhdpi-screen.png
Executable file
|
After Width: | Height: | Size: 37 KiB |
BIN
resources/android/splash/drawable-port-xxhdpi-screen.png
Executable file
|
After Width: | Height: | Size: 50 KiB |
BIN
resources/android/splash/drawable-port-xxxhdpi-screen.png
Executable file
|
After Width: | Height: | Size: 63 KiB |
6
resources/android/xml/network_security_config.xml
Executable file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<network-security-config>
|
||||
<domain-config cleartextTrafficPermitted="true">
|
||||
<domain includeSubdomains="true">localhost</domain>
|
||||
</domain-config>
|
||||
</network-security-config>
|
||||
BIN
resources/icon.png
Executable file
|
After Width: | Height: | Size: 56 KiB |
1
resources/icon.png.md5
Executable file
@ -0,0 +1 @@
|
||||
b7a37b9afefb48f35e1ced9da6791713
|
||||
BIN
resources/ios/icon/icon-1024.png
Executable file
|
After Width: | Height: | Size: 60 KiB |
BIN
resources/ios/icon/icon-20.png
Executable file
|
After Width: | Height: | Size: 686 B |
BIN
resources/ios/icon/icon-20@2x.png
Executable file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/ios/icon/icon-20@3x.png
Executable file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/ios/icon/icon-24@2x.png
Executable file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
resources/ios/icon/icon-27.5@2x.png
Executable file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
resources/ios/icon/icon-29.png
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/ios/icon/icon-29@2x.png
Executable file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/ios/icon/icon-29@3x.png
Executable file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
resources/ios/icon/icon-40.png
Executable file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
resources/ios/icon/icon-40@2x.png
Executable file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
resources/ios/icon/icon-40@3x.png
Executable file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
resources/ios/icon/icon-44@2x.png
Executable file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
resources/ios/icon/icon-50.png
Executable file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
resources/ios/icon/icon-50@2x.png
Executable file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
resources/ios/icon/icon-60.png
Executable file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/ios/icon/icon-60@2x.png
Executable file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
resources/ios/icon/icon-60@3x.png
Executable file
|
After Width: | Height: | Size: 14 KiB |
BIN
resources/ios/icon/icon-72.png
Executable file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
resources/ios/icon/icon-72@2x.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/ios/icon/icon-76.png
Executable file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
resources/ios/icon/icon-76@2x.png
Executable file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/ios/icon/icon-83.5@2x.png
Executable file
|
After Width: | Height: | Size: 12 KiB |
BIN
resources/ios/icon/icon-86@2x.png
Executable file
|
After Width: | Height: | Size: 13 KiB |
BIN
resources/ios/icon/icon-98@2x.png
Executable file
|
After Width: | Height: | Size: 16 KiB |
BIN
resources/ios/icon/icon-small.png
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/ios/icon/icon-small@2x.png
Executable file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
resources/ios/icon/icon-small@3x.png
Executable file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
resources/ios/icon/icon.png
Executable file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
resources/ios/icon/icon@2x.png
Executable file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
resources/ios/splash/Default-2436h.png
Executable file
|
After Width: | Height: | Size: 104 KiB |
BIN
resources/ios/splash/Default-568h@2x~iphone.png
Executable file
|
After Width: | Height: | Size: 39 KiB |
BIN
resources/ios/splash/Default-667h.png
Executable file
|
After Width: | Height: | Size: 50 KiB |
BIN
resources/ios/splash/Default-736h.png
Executable file
|
After Width: | Height: | Size: 106 KiB |
BIN
resources/ios/splash/Default-Landscape-2436h.png
Executable file
|
After Width: | Height: | Size: 113 KiB |
BIN
resources/ios/splash/Default-Landscape-736h.png
Executable file
|
After Width: | Height: | Size: 117 KiB |
BIN
resources/ios/splash/Default-Landscape@2x~ipad.png
Executable file
|
After Width: | Height: | Size: 133 KiB |
BIN
resources/ios/splash/Default-Landscape@~ipadpro.png
Executable file
|
After Width: | Height: | Size: 93 KiB |
BIN
resources/ios/splash/Default-Landscape~ipad.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
resources/ios/splash/Default-Portrait@2x~ipad.png
Executable file
|
After Width: | Height: | Size: 147 KiB |
BIN
resources/ios/splash/Default-Portrait@~ipadpro.png
Executable file
|
After Width: | Height: | Size: 99 KiB |
BIN
resources/ios/splash/Default-Portrait~ipad.png
Executable file
|
After Width: | Height: | Size: 43 KiB |
BIN
resources/ios/splash/Default@2x~iphone.png
Executable file
|
After Width: | Height: | Size: 36 KiB |
BIN
resources/ios/splash/Default@2x~universal~anyany.png
Executable file
|
After Width: | Height: | Size: 120 KiB |
BIN
resources/ios/splash/Default~iphone.png
Executable file
|
After Width: | Height: | Size: 14 KiB |
BIN
resources/splash.png
Executable file
|
After Width: | Height: | Size: 58 KiB |
1
resources/splash.png.md5
Executable file
@ -0,0 +1 @@
|
||||
50007304f4721190957196d17b2ae952
|
||||
59
src/app/app-routing.module.ts
Executable file
@ -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 {}
|
||||
58
src/app/app.component.html
Executable file
@ -0,0 +1,58 @@
|
||||
<!-- <ion-app>
|
||||
<ion-split-pane contentId="main-content">
|
||||
<ion-menu contentId="main-content" type="overlay">
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<ion-title>Menu</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
<ion-content>
|
||||
<ion-list>
|
||||
<ion-menu-toggle auto-hide="false" *ngFor="let p of appPages">
|
||||
<ion-item [routerDirection]="'root'" [routerLink]="[p.url]">
|
||||
<ion-icon slot="start" [name]="p.icon"></ion-icon>
|
||||
<ion-label>
|
||||
{{p.title}}
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-menu-toggle>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
</ion-menu>
|
||||
<ion-router-outlet id="main-content"></ion-router-outlet>
|
||||
</ion-split-pane>
|
||||
</ion-app> -->
|
||||
|
||||
<!-- <ion-app>
|
||||
<ion-split-pane contentId="main-content">
|
||||
<ion-menu contentId="main-content" type="overlay">
|
||||
<ion-content>
|
||||
<div class="menu-header" style="text-align:center !important;" *ngIf="userAccess">
|
||||
|
||||
<img class="user-avatar round" style="height:111px;max-width:111px;" [src]="userDetails.profilepic || placeholder" onerror="this.src='assets/img/avatar/girl-avatar.png'"
|
||||
/>
|
||||
<p class="name">{{userDetails.user_first_name}} {{userDetails.user_last_name}}</p>
|
||||
<span>({{userDetails.role_name}})</span>
|
||||
</div>
|
||||
<div class="menu-header" style="text-align:center !important;" *ngIf="!userAccess">
|
||||
|
||||
<img class="user-avatar round" style="height:111px;max-width:111px;" [src]="chosenPicture || placeholder" onerror="this.src='assets/img/avatar/girl-avatar.png'"
|
||||
/>
|
||||
<p class="name">Sineedge PD Officer</p>
|
||||
</div>
|
||||
<div class="hr"></div>
|
||||
<ion-list no-lines>
|
||||
<button menuClose="left" ion-item detail-none *ngFor="let p of pages" (click)="p.method()">
|
||||
<ion-icon [name]="p.icon" item-left></ion-icon>
|
||||
{{p.title}}
|
||||
</button>
|
||||
<ion-item no-lines>
|
||||
<p>App Version: {{app_version}}</p>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
</ion-content>
|
||||
</ion-menu> -->
|
||||
<ion-router-outlet id="main-content"></ion-router-outlet>
|
||||
<!-- </ion-split-pane>
|
||||
</ion-app> -->
|
||||
0
src/app/app.component.scss
Executable file
67
src/app/app.component.spec.ts
Executable file
@ -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');
|
||||
});
|
||||
|
||||
});
|
||||
281
src/app/app.component.ts
Executable file
@ -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()
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
89
src/app/app.module.ts
Executable file
@ -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 {}
|
||||
23
src/app/home/home.module.ts
Executable file
@ -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 {}
|
||||
48
src/app/home/home.page.html
Executable file
@ -0,0 +1,48 @@
|
||||
<ion-header>
|
||||
<ion-toolbar>
|
||||
<ion-buttons slot="start">
|
||||
<ion-menu-button></ion-menu-button>
|
||||
</ion-buttons>
|
||||
<ion-title>
|
||||
Home
|
||||
</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
<ion-content>
|
||||
<ion-card class="welcome-card">
|
||||
<img src="/assets/shapes.svg" alt=""/>
|
||||
<ion-card-header>
|
||||
<ion-card-subtitle>Get Started</ion-card-subtitle>
|
||||
<ion-card-title>Welcome to Ionic</ion-card-title>
|
||||
</ion-card-header>
|
||||
<ion-card-content>
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
|
||||
<ion-list lines="none">
|
||||
<ion-list-header>
|
||||
<ion-label>Resources</ion-label>
|
||||
</ion-list-header>
|
||||
<ion-item href="https://ionicframework.com/docs/">
|
||||
<ion-icon slot="start" color="medium" name="book"></ion-icon>
|
||||
<ion-label>Ionic Documentation</ion-label>
|
||||
</ion-item>
|
||||
<ion-item href="https://ionicframework.com/docs/building/scaffolding">
|
||||
<ion-icon slot="start" color="medium" name="build"></ion-icon>
|
||||
<ion-label>Scaffold Out Your App</ion-label>
|
||||
</ion-item>
|
||||
<ion-item href="https://ionicframework.com/docs/layout/structure">
|
||||
<ion-icon slot="start" color="medium" name="grid"></ion-icon>
|
||||
<ion-label>Change Your App Layout</ion-label>
|
||||
</ion-item>
|
||||
<ion-item href="https://ionicframework.com/docs/theming/basics">
|
||||
<ion-icon slot="start" color="medium" name="color-fill"></ion-icon>
|
||||
<ion-label>Theme Your App</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</ion-content>
|
||||
4
src/app/home/home.page.scss
Executable file
@ -0,0 +1,4 @@
|
||||
.welcome-card img {
|
||||
max-height: 35vh;
|
||||
overflow: hidden;
|
||||
}
|
||||
24
src/app/home/home.page.spec.ts
Executable file
@ -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<HomePage>;
|
||||
|
||||
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();
|
||||
});
|
||||
});
|
||||
12
src/app/home/home.page.ts
Executable file
@ -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() {}
|
||||
|
||||
}
|
||||