├── .gitignore ├── Files.txt ├── README.md ├── config └── copy.config.js ├── ionic.config.json ├── resources ├── README.md ├── android │ ├── icon │ │ ├── drawable-hdpi-icon.png │ │ ├── drawable-ldpi-icon.png │ │ ├── drawable-mdpi-icon.png │ │ ├── drawable-xhdpi-icon.png │ │ ├── drawable-xxhdpi-icon.png │ │ └── drawable-xxxhdpi-icon.png │ └── splash │ │ ├── drawable-land-hdpi-screen.png │ │ ├── drawable-land-ldpi-screen.png │ │ ├── drawable-land-mdpi-screen.png │ │ ├── drawable-land-xhdpi-screen.png │ │ ├── drawable-land-xxhdpi-screen.png │ │ ├── drawable-land-xxxhdpi-screen.png │ │ ├── drawable-port-hdpi-screen.png │ │ ├── drawable-port-ldpi-screen.png │ │ ├── drawable-port-mdpi-screen.png │ │ ├── drawable-port-xhdpi-screen.png │ │ ├── drawable-port-xxhdpi-screen.png │ │ └── drawable-port-xxxhdpi-screen.png ├── icon.png ├── ios │ ├── icon │ │ ├── icon-1024.png │ │ ├── icon-40.png │ │ ├── icon-40@2x.png │ │ ├── icon-40@3x.png │ │ ├── icon-50.png │ │ ├── icon-50@2x.png │ │ ├── icon-60.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-72.png │ │ ├── icon-72@2x.png │ │ ├── icon-76.png │ │ ├── icon-76@2x.png │ │ ├── icon-83.5@2x.png │ │ ├── icon-small.png │ │ ├── icon-small@2x.png │ │ ├── icon-small@3x.png │ │ ├── icon.png │ │ └── icon@2x.png │ └── splash │ │ ├── Default-568h@2x~iphone.png │ │ ├── Default-667h.png │ │ ├── Default-736h.png │ │ ├── Default-Landscape-736h.png │ │ ├── Default-Landscape@2x~ipad.png │ │ ├── Default-Landscape@~ipadpro.png │ │ ├── Default-Landscape~ipad.png │ │ ├── Default-Portrait@2x~ipad.png │ │ ├── Default-Portrait@~ipadpro.png │ │ ├── Default-Portrait~ipad.png │ │ ├── Default@2x~iphone.png │ │ ├── Default@2x~universal~anyany.png │ │ └── Default~iphone.png └── splash.png ├── src ├── app │ ├── app.component.ts │ ├── app.html │ ├── app.module.ts │ ├── app.scss │ └── main.ts ├── assets │ ├── data │ │ └── deals_db.json │ ├── fonts │ │ ├── initializeItems │ │ ├── lato.woff2 │ │ └── ubuntu.woff2 │ ├── icon │ │ └── favicon.ico │ ├── imgs │ │ ├── atomix_user31.png │ │ ├── baskets │ │ │ └── basket-1.jpg │ │ ├── buy-cart-ecommernce-shopping-icon-29.png │ │ ├── empty-cart.png │ │ ├── icons │ │ │ ├── canned.png │ │ │ ├── fb.png │ │ │ ├── food.png │ │ │ ├── google.png │ │ │ ├── homecare.png │ │ │ ├── personal.png │ │ │ └── snap-inner.png │ │ ├── logo.png │ │ ├── logos.png │ │ └── main-bg.png │ └── js │ │ ├── web-animations-next-lite.min.js │ │ ├── web-animations-next-lite.min.js.map │ │ ├── web-animations-next.min.js │ │ ├── web-animations-next.min.js.map │ │ ├── web-animations.min.js │ │ └── web-animations.min.js.map ├── components │ ├── accordian │ │ ├── accordian.html │ │ ├── accordian.scss │ │ └── accordian.ts │ ├── components.module.ts │ └── expandable-header │ │ ├── expandable-header.html │ │ ├── expandable-header.scss │ │ └── expandable-header.ts ├── directives │ ├── directives.module.ts │ └── hide-header │ │ └── hide-header.ts ├── index.html ├── manifest.json ├── pages │ ├── about │ │ ├── SelectModel.ts │ │ ├── about.html │ │ ├── about.scss │ │ ├── about.ts │ │ └── cart_Data_Model.ts │ ├── cart │ │ ├── CheckOut.ts │ │ ├── cart.html │ │ ├── cart.module.ts │ │ ├── cart.scss │ │ ├── cart.ts │ │ └── sendModel.ts │ ├── contact │ │ ├── contact.html │ │ ├── contact.scss │ │ └── contact.ts │ ├── details │ │ ├── CartForServer.ts │ │ ├── CartForServerDetails.ts │ │ ├── details.html │ │ ├── details.module.ts │ │ ├── details.scss │ │ └── details.ts │ ├── home-search │ │ ├── home-search.html │ │ ├── home-search.module.ts │ │ ├── home-search.scss │ │ └── home-search.ts │ ├── home │ │ ├── home.html │ │ ├── home.scss │ │ └── home.ts │ ├── list │ │ ├── item.ts │ │ ├── item_details.ts │ │ ├── list.html │ │ ├── list.module.ts │ │ ├── list.scss │ │ └── list.ts │ ├── login │ │ ├── login.html │ │ ├── login.module.ts │ │ ├── login.scss │ │ └── login.ts │ ├── notification │ │ ├── notification.html │ │ ├── notification.module.ts │ │ ├── notification.scss │ │ └── notification.ts │ ├── offer-load │ │ ├── offer-load.html │ │ ├── offer-load.module.ts │ │ ├── offer-load.scss │ │ └── offer-load.ts │ ├── orders │ │ ├── orders.html │ │ ├── orders.module.ts │ │ ├── orders.scss │ │ └── orders.ts │ ├── profile-edit │ │ ├── profile-edit.html │ │ ├── profile-edit.module.ts │ │ ├── profile-edit.scss │ │ └── profile-edit.ts │ ├── profile-popover │ │ ├── profile-popover.html │ │ ├── profile-popover.module.ts │ │ ├── profile-popover.scss │ │ └── profile-popover.ts │ ├── single-purchase │ │ ├── single-purchase.html │ │ ├── single-purchase.module.ts │ │ ├── single-purchase.scss │ │ └── single-purchase.ts │ ├── tabs │ │ ├── tabs.html │ │ └── tabs.ts │ └── user-registration │ │ ├── user-registration.html │ │ ├── user-registration.module.ts │ │ ├── user-registration.scss │ │ └── user-registration.ts ├── pipes │ ├── notificatons │ │ └── notificatons.ts │ ├── order │ │ └── order.ts │ ├── pipes.module.ts │ └── segment-filter │ │ └── segment-filter.ts ├── providers │ ├── cart │ │ └── cart.ts │ ├── final-cart-for-server │ │ └── final-cart-for-server.ts │ └── select-cart │ │ └── select-cart.ts ├── service-worker.js └── theme │ ├── custom.scss │ └── variables.scss ├── tsconfig.json ├── tslint.json └── www ├── .gitkeep ├── assets ├── data │ ├── deals2_db.json │ ├── deals_db.json │ └── sss.son ├── fonts │ ├── initializeItems │ ├── ionicons.eot │ ├── ionicons.scss │ ├── ionicons.svg │ ├── ionicons.ttf │ ├── ionicons.woff │ ├── ionicons.woff2 │ ├── lato.woff2 │ ├── noto-sans-bold.ttf │ ├── noto-sans-bold.woff │ ├── noto-sans-regular.ttf │ ├── noto-sans-regular.woff │ ├── noto-sans.scss │ ├── roboto-bold.ttf │ ├── roboto-bold.woff │ ├── roboto-bold.woff2 │ ├── roboto-light.ttf │ ├── roboto-light.woff │ ├── roboto-light.woff2 │ ├── roboto-medium.ttf │ ├── roboto-medium.woff │ ├── roboto-medium.woff2 │ ├── roboto-regular.ttf │ ├── roboto-regular.woff │ ├── roboto-regular.woff2 │ ├── roboto.scss │ └── ubuntu.woff2 ├── icon │ └── favicon.ico ├── imgs │ ├── atomix_user31.png │ ├── baskets │ │ └── basket-1.jpg │ ├── bg │ │ └── main-bg.png │ ├── buy-cart-ecommernce-shopping-icon-29.png │ ├── empty-cart.png │ ├── icons │ │ ├── canned.png │ │ ├── fb.png │ │ ├── food.png │ │ ├── google.png │ │ ├── homecare.png │ │ ├── personal.png │ │ └── snap-inner.png │ ├── item.png │ ├── logo.png │ ├── logos.png │ ├── main-bg.png │ ├── sample-images │ │ ├── deals │ │ │ ├── Deals1-4.1.png │ │ │ ├── Deals2-4.1.png │ │ │ ├── Deals3-4.1.png │ │ │ └── Deals4-4.1.png │ │ ├── fashion │ │ │ ├── Fashion1-1.1.png │ │ │ ├── Fashion1-3.4.png │ │ │ ├── Fashion2-1.1.png │ │ │ ├── Fashion2-3.4.png │ │ │ ├── Fashion3-1.1.png │ │ │ ├── Fashion3-3.4.png │ │ │ ├── Fashion4-1.1.png │ │ │ ├── Fashion4-3.4.png │ │ │ ├── Fashion5-1.1.png │ │ │ ├── Fashion5-3.4.png │ │ │ ├── Fashion6-1.1.png │ │ │ ├── Fashion6-3.4.png │ │ │ ├── Fashion7-1.1.png │ │ │ ├── Fashion7-3.4.png │ │ │ ├── Fashion8-1.1.png │ │ │ └── Fashion8-3.4.png │ │ ├── fashion_content │ │ │ ├── Fashion1_2-3.4.png │ │ │ ├── Fashion1_3-3.4.png │ │ │ ├── Fashion2_2-3.4.png │ │ │ ├── Fashion2_3-3.4.png │ │ │ ├── Fashion3_2-3.4.png │ │ │ ├── Fashion3_3-3.4.png │ │ │ ├── Fashion4_2-3.4.png │ │ │ ├── Fashion4_3-3.4.png │ │ │ ├── Fashion5_2-3.4.png │ │ │ ├── Fashion5_3-3.4.png │ │ │ ├── Fashion6_2-3.4.png │ │ │ ├── Fashion6_3-3.4.png │ │ │ ├── Fashion7_2-3.4.png │ │ │ ├── Fashion7_3-3.4.png │ │ │ ├── Fashion8_2-3.4.png │ │ │ └── Fashion8_3-3.4.png │ │ ├── food │ │ │ ├── Cat1Foto1-1.1.png │ │ │ ├── Cat1Foto2-1.1.png │ │ │ ├── Cat1Foto3-1.1.png │ │ │ ├── Cat1Foto4-1.1.png │ │ │ ├── Cat1Foto5-1.1.png │ │ │ ├── Cat2Foto1-1.1.png │ │ │ ├── Cat2Foto2-1.1.png │ │ │ ├── Cat2Foto3-1.1.png │ │ │ ├── Cat2Foto4-1.1.png │ │ │ ├── Cat2Foto5-1.1.png │ │ │ ├── Cat3Foto1-1.1.png │ │ │ ├── Cat3Foto2-1.1.png │ │ │ ├── Cat3Foto3-1.1.png │ │ │ ├── Cat3Foto4-1.1.png │ │ │ ├── Cat3Foto5-1.1.png │ │ │ ├── Cat4Foto1-1.1.png │ │ │ ├── Cat4Foto2-1.1.png │ │ │ ├── Cat4Foto3-1.1.png │ │ │ ├── Cat4Foto4-1.1.png │ │ │ ├── Cat4Foto5-1.1.png │ │ │ ├── foodlogo1.png │ │ │ ├── foodlogo2.png │ │ │ ├── foodlogo3.png │ │ │ └── foodlogo4.png │ │ ├── getting-started │ │ │ ├── category1-1.1.png │ │ │ ├── category2-1.1.png │ │ │ ├── category3-1.1.png │ │ │ ├── category4-1.1.png │ │ │ ├── category5-1.1.png │ │ │ └── category6-1.1.png │ │ ├── real-state │ │ │ ├── RealState1-64.25.png │ │ │ ├── RealState2-64.25.png │ │ │ ├── RealState3-64.25.png │ │ │ ├── RealState4-64.25.png │ │ │ └── RealState5-64.25.png │ │ └── travel │ │ │ ├── Travel1-64.47.png │ │ │ ├── Travel2-64.47.png │ │ │ ├── Travel3-64.47.png │ │ │ ├── Travel4-64.47.png │ │ │ ├── Travel5-64.47.png │ │ │ ├── TravelIcon1.png │ │ │ ├── TravelIcon2.png │ │ │ ├── TravelIcon3.png │ │ │ ├── TravelIcon4.png │ │ │ └── TravelIcon5.png │ ├── snap.png │ ├── welcome.png │ └── welcome_illustration.png └── js │ ├── web-animations-next-lite.min.js │ ├── web-animations-next-lite.min.js.map │ ├── web-animations-next.min.js │ ├── web-animations-next.min.js.map │ ├── web-animations.min.js │ └── web-animations.min.js.map ├── index.html ├── manifest.json └── service-worker.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Specifies intentionally untracked files to ignore when using Git 2 | # http://git-scm.com/docs/gitignore 3 | 4 | *~ 5 | *.sw[mnpcod] 6 | *.log 7 | *.tmp 8 | *.tmp.* 9 | log.txt 10 | *.sublime-project 11 | *.sublime-workspace 12 | .vscode/ 13 | npm-debug.log* 14 | 15 | .idea/ 16 | .sourcemaps/ 17 | .sass-cache/ 18 | .tmp/ 19 | .versions/ 20 | coverage/ 21 | dist/ 22 | node_modules/ 23 | tmp/ 24 | temp/ 25 | hooks/ 26 | platforms/ 27 | plugins/ 28 | plugins/android.json 29 | plugins/ios.json 30 | $RECYCLE.BIN/ 31 | 32 | .DS_Store 33 | Thumbs.db 34 | UserInterfaceState.xcuserstate 35 | package.json 36 | config.xml 37 | www/build/.ion-diagnostic-typescript.html 38 | www/build/ 39 | -------------------------------------------------------------------------------- /Files.txt: -------------------------------------------------------------------------------- 1 | Ionic Framework: 3.7.1 2 | Ionic App Scripts: 3.0.0 3 | Angular Core: 4.4.3 4 | Angular Compiler CLI: 4.4.3 5 | Node: 6.9.5 6 | OS Platform: Windows 8.1 7 | Navigator Platform: Win32 8 | User Agent: Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Mobile Safari/537.36 9 | 10 | Start new ionic project using ionic start myApp tabs command in terminal 11 | Press Y for the message 12 | "Looks like a fresh checkout! No ./node_modules directory found. Would you like to install project dependencies?" 13 | 14 | 15 | install node modules using following commands in termnial 16 | 17 | npm install @angular/animations@latest --save 18 | 19 | install android keyboard plugin using following command 20 | 21 | ionic cordova plugin add ionic-plugin-keyboard 22 | npm install --save @ionic-native/keyboard 23 | 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # README # 2 | 3 | This README would normally document whatever steps are necessary to get your application up and running. 4 | 5 | ### What is this repository for? ### 6 | 7 | * Quick summary 8 | * Version 9 | * [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo) 10 | 11 | ### How do I get set up? ### 12 | 13 | * Summary of set up 14 | * Configuration 15 | * Dependencies 16 | * Database configuration 17 | * How to run tests 18 | * Deployment instructions 19 | 20 | ### Contribution guidelines ### 21 | 22 | * Writing tests 23 | * Code review 24 | * Other guidelines 25 | 26 | ### Who do I talk to? ### 27 | 28 | * Repo owner or admin 29 | * Other community or team contact -------------------------------------------------------------------------------- /config/copy.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | copyDragulaCss: { 3 | src: './node_modules/dragula/dist/dragula.css', 4 | dest: '{{BUILD}}' 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /ionic.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Grocery", 3 | "app_id": "d2ed10f4", 4 | "type": "ionic-angular", 5 | "integrations": { 6 | "cordova": {} 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /resources/README.md: -------------------------------------------------------------------------------- 1 | These are Cordova resources. You can replace icon.png and splash.png and run 2 | `ionic cordova resources` to generate custom icons and splash screens for your 3 | app. See `ionic cordova resources --help` for details. 4 | 5 | Cordova reference documentation: 6 | 7 | - Icons: https://cordova.apache.org/docs/en/latest/config_ref/images.html 8 | - Splash Screens: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/ 9 | -------------------------------------------------------------------------------- /resources/android/icon/drawable-hdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/icon/drawable-hdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-ldpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/icon/drawable-ldpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-mdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/icon/drawable-mdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/icon/drawable-xhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/icon/drawable-xxhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/icon/drawable-xxxhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-land-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-land-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-land-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-land-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-land-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-land-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-port-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-port-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-port-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-port-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-port-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/android/splash/drawable-port-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/icon.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-1024.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-40.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-40@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-40@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-50.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-50@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-60.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-60@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-60@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-72.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-72@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-76.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-76@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-83.5@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-small.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-small@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon-small@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon.png -------------------------------------------------------------------------------- /resources/ios/icon/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/icon/icon@2x.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-568h@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-568h@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-667h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-667h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-Landscape-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-Landscape@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape@~ipadpro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-Landscape@~ipadpro.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-Landscape~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-Portrait@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait@~ipadpro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-Portrait@~ipadpro.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default-Portrait~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~universal~anyany.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default@2x~universal~anyany.png -------------------------------------------------------------------------------- /resources/ios/splash/Default~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/ios/splash/Default~iphone.png -------------------------------------------------------------------------------- /resources/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/resources/splash.png -------------------------------------------------------------------------------- /src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component,ViewChild } from '@angular/core'; 2 | import {Nav, Platform } from 'ionic-angular'; 3 | import { StatusBar } from '@ionic-native/status-bar'; 4 | import { SplashScreen } from '@ionic-native/splash-screen'; 5 | import {LoginPage} from '../pages/login/login'; 6 | import { TabsPage } from '../pages/tabs/tabs'; 7 | 8 | @Component({ 9 | templateUrl: 'app.html' 10 | }) 11 | export class MyApp { 12 | //rootPage:any = TabsPage; 13 | @ViewChild(Nav) nav: Nav; 14 | rootPage:any =LoginPage; 15 | isList: boolean = true; 16 | isLocation: boolean = false; 17 | isSelf: boolean = false; 18 | isNotifications: boolean = false; 19 | isSearch: boolean = false; 20 | isCamera: boolean = false; 21 | 22 | constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) { 23 | platform.ready().then(() => { 24 | // Okay, so the platform is ready and our plugins are available. 25 | // Here you can do any higher level native things you might need. 26 | statusBar.styleDefault(); 27 | splashScreen.hide(); 28 | }); 29 | } 30 | 31 | 32 | togglePage(whichPage: string): void { 33 | this.isList=false; 34 | this.isLocation=false; 35 | this.isSelf=false; 36 | this.isNotifications=false; 37 | this.isSearch=false; 38 | this.isCamera=false; 39 | 40 | let newTab:string=''; 41 | 42 | switch (whichPage) { 43 | case'List': 44 | this.isList=true; 45 | newTab='PhotosPage'; 46 | break; 47 | case'Location': 48 | this.isLocation=true; 49 | newTab='LocationsPage'; 50 | break; 51 | case'Self': 52 | this.isSelf=true; 53 | newTab='SelfPage'; 54 | break; 55 | case'Notifications': 56 | this.isNotifications=true; 57 | newTab='NotificationsPage'; 58 | break; 59 | case'Search': 60 | this.isSearch=true; 61 | newTab='SearchPage'; 62 | break; 63 | case'Camera': 64 | this.isCamera=true; 65 | newTab='CameraPage'; 66 | break; 67 | } 68 | 69 | this.nav.setRoot(newTab); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/app/app.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule, ErrorHandler } from '@angular/core'; 2 | import { BrowserModule } from '@angular/platform-browser'; 3 | import { HttpModule } from '@angular/http'; 4 | import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular'; 5 | import { MyApp } from './app.component'; 6 | import { TextMaskModule } from 'angular2-text-mask'; 7 | import { CommonModule } from '@angular/common'; 8 | import { Facebook, FacebookLoginResponse } from '@ionic-native/facebook'; 9 | import firebase from 'firebase'; 10 | import { IonicStorageModule } from '@ionic/storage'; 11 | import {HomeSearchPage} from '../pages/home-search/home-search'; 12 | import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 13 | import { AboutPage } from '../pages/about/about'; 14 | import { ContactPage } from '../pages/contact/contact'; 15 | import { HomePage } from '../pages/home/home'; 16 | import { TabsPage } from '../pages/tabs/tabs'; 17 | import { DetailsPage } from '../pages/details/details'; 18 | import {LoginPage} from '../pages/login/login'; 19 | import { StatusBar } from '@ionic-native/status-bar'; 20 | import { SplashScreen } from '@ionic-native/splash-screen'; 21 | import {UserRegistrationPage} from '../pages/user-registration/user-registration'; 22 | import {CartPage} from '../pages/cart/cart'; 23 | import {NotificationPage} from '../pages/notification/notification'; 24 | import { CartProvider } from '../providers/cart/cart'; 25 | import { SelectCartProvider } from '../providers/select-cart/select-cart'; 26 | import {ListPage} from '../pages/list/list'; 27 | import { DragulaModule } from 'ng2-dragula'; 28 | import {AccordianComponent} from '../components/accordian/accordian'; 29 | import {HideHeaderDirective} from '../directives/hide-header/hide-header'; 30 | import {SegmentFilterPipe} from '../pipes/segment-filter/segment-filter'; 31 | import { FinalCartForServerProvider } from '../providers/final-cart-for-server/final-cart-for-server'; 32 | import {ExpandableHeaderComponent} from '../components/expandable-header/expandable-header'; 33 | import {ProfilePopoverPage} from '../pages/profile-popover/profile-popover'; 34 | import {ProfileEditPage} from '../pages/profile-edit/profile-edit'; 35 | import {InlineEditorModule} from 'ng2-inline-editor'; 36 | import {OrdersPage} from '../pages/orders/orders'; 37 | import {SinglePurchasePage} from '../pages/single-purchase/single-purchase'; 38 | import { Keyboard } from '@ionic-native/keyboard'; 39 | import {OfferLoadPage} from '../pages/offer-load/offer-load'; 40 | 41 | //firebase config file 42 | export const firebaseConfig={ 43 | apiKey: "AIzaSyATR-VWhw4o-I79yyg9u_Dn1IMBj0aggLQ", 44 | authDomain: "iq-social-login.firebaseapp.com", 45 | databaseURL: "https://iq-social-login.firebaseio.com", 46 | projectId: "iq-social-login", 47 | storageBucket: "iq-social-login.appspot.com", 48 | messagingSenderId: "1086149147249" 49 | } 50 | 51 | firebase.initializeApp(firebaseConfig) 52 | 53 | @NgModule({ 54 | declarations: [ 55 | MyApp, 56 | AboutPage, 57 | ContactPage, 58 | HomePage, 59 | TabsPage, 60 | DetailsPage, 61 | SinglePurchasePage, 62 | LoginPage, 63 | UserRegistrationPage, 64 | CartPage, 65 | OfferLoadPage, 66 | ProfilePopoverPage, 67 | ProfileEditPage, 68 | HomeSearchPage, 69 | NotificationPage, 70 | AccordianComponent, 71 | HideHeaderDirective, 72 | OrdersPage, 73 | ExpandableHeaderComponent, 74 | SegmentFilterPipe, 75 | ListPage 76 | ], 77 | imports: [ 78 | BrowserModule, 79 | CommonModule, 80 | InlineEditorModule, 81 | BrowserAnimationsModule, 82 | HttpModule, 83 | TextMaskModule, 84 | DragulaModule, 85 | IonicStorageModule.forRoot(), 86 | IonicModule.forRoot(MyApp,{ 87 | // mode: 'ios', 88 | // backButtonIcon: 'arrow-back', 89 | // iconMode: 'ios', 90 | // pageTransition: 'ios', 91 | }) 92 | ], 93 | bootstrap: [IonicApp], 94 | entryComponents: [ 95 | MyApp, 96 | AboutPage, 97 | ContactPage, 98 | HomePage, 99 | TabsPage, 100 | DetailsPage, 101 | SinglePurchasePage, 102 | ProfilePopoverPage, 103 | ProfileEditPage, 104 | LoginPage, 105 | HomeSearchPage, 106 | UserRegistrationPage, 107 | CartPage, 108 | OfferLoadPage, 109 | OrdersPage, 110 | NotificationPage, 111 | ListPage 112 | 113 | ], 114 | providers: [ 115 | StatusBar, 116 | HttpModule, 117 | Facebook, 118 | Keyboard, 119 | SplashScreen, 120 | CartProvider, 121 | {provide: ErrorHandler, useClass: IonicErrorHandler}, 122 | SelectCartProvider, 123 | FinalCartForServerProvider, 124 | 125 | ] 126 | }) 127 | export class AppModule {} 128 | -------------------------------------------------------------------------------- /src/app/app.scss: -------------------------------------------------------------------------------- 1 | // http://ionicframework.com/docs/theming/ 2 | 3 | 4 | // App Global Sass 5 | // -------------------------------------------------- 6 | // Put style rules here that you want to apply globally. These 7 | // styles are for the entire app and not just one component. 8 | // Additionally, this file can be also used as an entry point 9 | // to import other Sass files to be included in the output CSS. 10 | // 11 | // Shared Sass variables, which can be used to adjust Ionic's 12 | // default Sass variables, belong in "theme/variables.scss". 13 | // 14 | // To declare rules for a specific mode, create a child rule 15 | // for the .md, .ios, or .wp mode classes. The mode class is 16 | // automatically applied to the element in the app. 17 | 18 | 19 | //font-face 20 | // @font-face{ 21 | // font-family:Shrikhand; 22 | // src:url('../assets/fonts/Roberto.woff2'); 23 | // } 24 | 25 | // *{ 26 | // font-family:Shrikhand; 27 | // } 28 | 29 | 30 | //change tabs top active color 31 | .tabs-md[tabsHighlight="true"] .tab-highlight { 32 | // background-color: #fe770a; 33 | // background-color:#472F8F; 34 | background-color:#FEC817; 35 | } 36 | 37 | .checkbox-ios .checkbox-checked { 38 | border-color: $checkbox-ios-icon-border-color-on; 39 | background-color: $checkbox-ios-background-color-on; 40 | } 41 | 42 | 43 | 44 | 45 | // iOS Checkbox Inner Checkmark: Checked 46 | // ----------------------------------------- 47 | 48 | .checkbox-ios .checkbox-checked .checkbox-inner { 49 | position: absolute; 50 | top: 10px; 51 | left: 13px; 52 | 53 | width: 10px; 54 | height: 15px; 55 | 56 | border-width: $checkbox-ios-icon-checkmark-width; 57 | border-top-width: 0; 58 | border-left-width: 0; 59 | border-style: $checkbox-ios-icon-checkmark-style; 60 | border-color: $checkbox-ios-icon-checkmark-color; 61 | transform: rotate(45deg); 62 | } 63 | -------------------------------------------------------------------------------- /src/app/main.ts: -------------------------------------------------------------------------------- 1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 2 | import { AppModule } from './app.module'; 3 | 4 | platformBrowserDynamic().bootstrapModule(AppModule); 5 | -------------------------------------------------------------------------------- /src/assets/data/deals_db.json: -------------------------------------------------------------------------------- 1 | { 2 | "products":[ 3 | { 4 | "id": 1, 5 | "code": "CHOC4LIFE", 6 | "description": "Lindt Excellence 70% Cocoa Chocolate Diamonds 60ct Box with Lancaster for $10.26", 7 | "name": "50% OFF Lindt", 8 | "expiration_date": "05/01/2016", 9 | "picture": "https://www.keellssuper.com/ItemImages/Big/Pic27256.jpg" 10 | }, { 11 | "id": 2, 12 | "code": "20LIGHT25", 13 | "description": "20% off Landscape Lighting and 25% off Outdoor Wall Light Fixtures with Coupon Code", 14 | "name": "20% OFF Landscape Lighting", 15 | "expiration_date": "07/07/2016", 16 | "picture": "https://www.keellssuper.com/ItemImages/Big/Pic15345.jpg" 17 | }, { 18 | "id": 3, 19 | "code": "MORETVPLZ3", 20 | "description": "Starz HD free trial extended for 3 months, in time for the new seasons of your favourite shows", 21 | "name": "3 Months FREE (Trial)", 22 | "expiration_date": "09/08/2016", 23 | "picture": "https://www.keellssuper.com/ItemImages/Big/Pic95756.jpg" 24 | }, { 25 | "id": 4, 26 | "code": "GETTHATPHONE212", 27 | "description": "Free 4 Month Notevault Subscription With Cat® Phones worth $578", 28 | "name": "CAT Limited Time Offer", 29 | "expiration_date": "04/30/2016", 30 | "picture": "https://www.keellssuper.com/ItemImages/Big/Pic97590.jpg" 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /src/assets/fonts/initializeItems: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/fonts/initializeItems -------------------------------------------------------------------------------- /src/assets/fonts/lato.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/fonts/lato.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/ubuntu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/fonts/ubuntu.woff2 -------------------------------------------------------------------------------- /src/assets/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/icon/favicon.ico -------------------------------------------------------------------------------- /src/assets/imgs/atomix_user31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/atomix_user31.png -------------------------------------------------------------------------------- /src/assets/imgs/baskets/basket-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/baskets/basket-1.jpg -------------------------------------------------------------------------------- /src/assets/imgs/buy-cart-ecommernce-shopping-icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/buy-cart-ecommernce-shopping-icon-29.png -------------------------------------------------------------------------------- /src/assets/imgs/empty-cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/empty-cart.png -------------------------------------------------------------------------------- /src/assets/imgs/icons/canned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/icons/canned.png -------------------------------------------------------------------------------- /src/assets/imgs/icons/fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/icons/fb.png -------------------------------------------------------------------------------- /src/assets/imgs/icons/food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/icons/food.png -------------------------------------------------------------------------------- /src/assets/imgs/icons/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/icons/google.png -------------------------------------------------------------------------------- /src/assets/imgs/icons/homecare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/icons/homecare.png -------------------------------------------------------------------------------- /src/assets/imgs/icons/personal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/icons/personal.png -------------------------------------------------------------------------------- /src/assets/imgs/icons/snap-inner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/icons/snap-inner.png -------------------------------------------------------------------------------- /src/assets/imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/logo.png -------------------------------------------------------------------------------- /src/assets/imgs/logos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/logos.png -------------------------------------------------------------------------------- /src/assets/imgs/main-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/src/assets/imgs/main-bg.png -------------------------------------------------------------------------------- /src/components/accordian/accordian.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | {{title}} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/components/accordian/accordian.scss: -------------------------------------------------------------------------------- 1 | accordian { 2 | 3 | .card-header{ 4 | background-color:map-get($colors,primary); 5 | color:#fff; 6 | } 7 | 8 | .card-content{ 9 | padding:0px 16px; 10 | max-height:0px; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/components/accordian/accordian.ts: -------------------------------------------------------------------------------- 1 | import { Component,ViewChild,OnInit,Renderer,Input } from '@angular/core'; 2 | 3 | /** 4 | * Generated class for the AccordianComponent component. 5 | * 6 | * See https://angular.io/api/core/Component for more info on Angular 7 | * Components. 8 | */ 9 | @Component({ 10 | selector: 'accordian', 11 | templateUrl: 'accordian.html' 12 | }) 13 | export class AccordianComponent implements OnInit{ 14 | 15 | text: string; 16 | 17 | accordianExpanded =false; 18 | icon:string ="arrow-forward"; 19 | 20 | 21 | @ViewChild("cc") cardContent:any; 22 | @Input('title') title:string; 23 | @Input() 24 | 25 | ngOnInit(){ 26 | this.renderer.setElementStyle(this.cardContent.nativeElement,"webkitTransition","max-height 500ms ,padding 500ms"); 27 | } 28 | 29 | 30 | constructor( public renderer:Renderer) { 31 | 32 | } 33 | 34 | toggleAccordian(){ 35 | if(this.accordianExpanded){ 36 | this.renderer.setElementStyle(this.cardContent.nativeElement,"max-height","0px"); 37 | this.renderer.setElementStyle(this.cardContent.nativeElement,"padding","0px 16px"); 38 | }else{ 39 | this.renderer.setElementStyle(this.cardContent.nativeElement,"max-height","1000px"); 40 | this.renderer.setElementStyle(this.cardContent.nativeElement,"padding","13px 16px"); 41 | } 42 | this.accordianExpanded =! this.accordianExpanded; 43 | this.icon =this.icon=="arrow-forward" ? "arrow-down" : "arrow-forward"; 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/components/components.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { AccordianComponent } from './accordian/accordian'; 3 | import { ExpandableHeaderComponent } from './expandable-header/expandable-header'; 4 | @NgModule({ 5 | declarations: [AccordianComponent, 6 | ExpandableHeaderComponent], 7 | imports: [], 8 | exports: [AccordianComponent, 9 | ExpandableHeaderComponent] 10 | }) 11 | export class ComponentsModule {} 12 | -------------------------------------------------------------------------------- /src/components/expandable-header/expandable-header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/components/expandable-header/expandable-header.scss: -------------------------------------------------------------------------------- 1 | expandable-header { 2 | 3 | display: block; 4 | // background-color: map-get($colors, primary); 5 | overflow: hidden; 6 | 7 | } -------------------------------------------------------------------------------- /src/components/expandable-header/expandable-header.ts: -------------------------------------------------------------------------------- 1 | import { Component,Input, ElementRef, Renderer,ContentChildren } from '@angular/core'; 2 | import { Item } from 'ionic-angular'; 3 | 4 | /** 5 | * Generated class for the ExpandableHeaderComponent component. 6 | * 7 | * See https://angular.io/api/core/Component for more info on Angular 8 | * Components. 9 | */ 10 | @Component({ 11 | selector: 'expandable-header', 12 | templateUrl: 'expandable-header.html' 13 | }) 14 | export class ExpandableHeaderComponent { 15 | 16 | 17 | @Input('scrollArea') scrollArea: any; 18 | @Input('headerHeight') headerHeight: number; 19 | 20 | @ContentChildren(Headers, {read: ElementRef}) children: any; 21 | 22 | newHeaderHeight: any; 23 | 24 | constructor(public element:ElementRef,public render:Renderer) { 25 | 26 | } 27 | 28 | 29 | ngAfterViewInit(){ 30 | 31 | this.render.setElementStyle(this.element.nativeElement, 'height', this.headerHeight + 'px'); 32 | 33 | this.scrollArea.ionScroll.subscribe((ev) => { 34 | this.resizeHeader(ev); 35 | }); 36 | 37 | } 38 | 39 | resizeHeader(ev){ 40 | 41 | ev.domWrite(() => { 42 | 43 | this.newHeaderHeight = this.headerHeight - ev.scrollTop; 44 | 45 | if(this.newHeaderHeight < 0){ 46 | this.newHeaderHeight = 0; 47 | } 48 | 49 | this.render.setElementStyle(this.element.nativeElement, 'height', this.newHeaderHeight + 'px'); 50 | 51 | this.children.forEach((child) => { 52 | 53 | let headerElement = child.nativeElement; 54 | let totalHeight = headerElement.offsetTop + headerElement.clientHeight; 55 | 56 | if(totalHeight > this.newHeaderHeight && !headerElement.isHidden){ 57 | headerElement.isHidden = true; 58 | this.render.setElementStyle(headerElement, 'opacity', '0'); 59 | } else if (totalHeight <= this.newHeaderHeight && headerElement.isHidden) { 60 | headerElement.isHidden = false; 61 | this.render.setElementStyle(headerElement, 'opacity', '0.7'); 62 | } 63 | 64 | }); 65 | 66 | }); 67 | 68 | } 69 | 70 | 71 | } 72 | -------------------------------------------------------------------------------- /src/directives/directives.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { HideHeaderDirective } from './hide-header/hide-header'; 3 | @NgModule({ 4 | declarations: [HideHeaderDirective], 5 | imports: [], 6 | exports: [HideHeaderDirective] 7 | }) 8 | export class DirectivesModule {} 9 | -------------------------------------------------------------------------------- /src/directives/hide-header/hide-header.ts: -------------------------------------------------------------------------------- 1 | import { Directive,Input,ElementRef,Renderer } from '@angular/core'; 2 | 3 | /** 4 | * Generated class for the HideHeaderDirective directive. 5 | * 6 | * See https://angular.io/api/core/Directive for more info on Angular 7 | * Directives. 8 | */ 9 | @Directive({ 10 | selector: '[hide-header]',// Attribute selector 11 | host:{ 12 | '(ionScroll)': 'onContentScroll($event)' 13 | } 14 | }) 15 | export class HideHeaderDirective { 16 | 17 | headerHeight; 18 | scrollContent; 19 | @Input("header") header :HTMLElement; 20 | 21 | constructor(public element:ElementRef,public render:Renderer) { 22 | console.log('Hello HideHeaderDirective Directive'); 23 | } 24 | 25 | 26 | ngOninit(){ 27 | this.headerHeight =this.header.clientHeight; 28 | this.render.setElementStyle(this.header,"webkitTransition","top 700ms"); 29 | this.scrollContent.element.nativeElement.getElementByclassName("scroll-content")[0]; 30 | this.render.setElementStyle(this.scrollContent,"webkitTransition","margin-top 700ms"); 31 | } 32 | 33 | onContentScroll(event){ 34 | if(event.scrollTop >56){ 35 | this.render.setElementStyle(this.header,"top","-56px"); 36 | }else{ 37 | this.render.setElementStyle(this.header,"top","0px"); 38 | } 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ionic App 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 31 | 32 | 33 | 34 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Ionic", 3 | "short_name": "Ionic", 4 | "start_url": "index.html", 5 | "display": "standalone", 6 | "icons": [{ 7 | "src": "assets/imgs/logo.png", 8 | "sizes": "512x512", 9 | "type": "image/png" 10 | }], 11 | "background_color": "#4e8ef7", 12 | "theme_color": "#4e8ef7" 13 | } -------------------------------------------------------------------------------- /src/pages/about/SelectModel.ts: -------------------------------------------------------------------------------- 1 | export class SelectModel{ 2 | 3 | // id:string = null; 4 | // userId:string = null ; 5 | // qty:number =null; 6 | // price:number=null; 7 | // img:any =null; 8 | 9 | 10 | // constructor(data){ 11 | 12 | // this.id = data.group_id; 13 | // this.userId = data.group_id; 14 | // this.qty = data.group_items[0].qty; 15 | // this.price =data.group_items[0].price; 16 | // this.img = data.group_items[0].picture; 17 | 18 | // } 19 | 20 | 21 | catid:number =null; 22 | catname:string=null; 23 | itmcode:any=null; 24 | itmname: any=null; 25 | itmprice:number =null; 26 | qty:number=null; 27 | description:any=null; 28 | itmimgpath:any=null; 29 | availableqty:number=null; 30 | 31 | 32 | constructor(data){ 33 | console.log('item',data); 34 | this.catid = data.catid; 35 | this.catname=data.catname; 36 | this.itmcode=data.itmcode; 37 | this.itmname=data.itmname; 38 | this.qty=data.qty; 39 | this.itmprice=data.itmprice; 40 | this.description=data.description; 41 | this.availableqty=data.availableqty; 42 | this.itmimgpath=data.itmimgpath; 43 | } 44 | 45 | 46 | } -------------------------------------------------------------------------------- /src/pages/about/cart_Data_Model.ts: -------------------------------------------------------------------------------- 1 | /* Data model definition for cart - Sampath Dissanayake */ 2 | 3 | export class CartDataModel{ 4 | 5 | id:string = null; 6 | userId:string = null ; 7 | qty:number =null; 8 | price:number=null; 9 | img : any = null; 10 | 11 | 12 | constructor(data){ 13 | 14 | this.id = data.group_id; 15 | this.userId = data.group_id; 16 | this.qty = data.group_items[0].qty; 17 | this.price =data.group_items[0].price; 18 | this.img = data.group_items[0].picture; 19 | 20 | 21 | } 22 | } -------------------------------------------------------------------------------- /src/pages/cart/CheckOut.ts: -------------------------------------------------------------------------------- 1 | export class checkout{ 2 | 3 | 4 | group_id:string = null; 5 | userId:string = null ; 6 | qty:number =null; 7 | 8 | constructor(data){ 9 | 10 | 11 | } 12 | } -------------------------------------------------------------------------------- /src/pages/cart/cart.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | SNAP APP 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 47 |

{{item.group_items.name}}

48 |

{{item.group_items.qty}} X {{item.group_items.itemprice}} = Rs {{item.group_items.qty*item.group_items.itemprice}}

49 | 52 | 53 |
54 | 55 | 56 | 57 | 58 | 61 | 62 | 65 | 66 | 67 | 68 | 69 | 70 | 71 |
72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | TOTAL 83 | 84 | 85 | 86 | 87 | 88 | Rs {{T_Amt}} 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 |
97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /src/pages/cart/cart.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { CartPage } from './cart'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | CartPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(CartPage), 11 | ], 12 | }) 13 | export class CartPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/cart/cart.scss: -------------------------------------------------------------------------------- 1 | page-cart { 2 | 3 | .innerHTML { 4 | width: 50%; 5 | margin: 0 auto; 6 | } 7 | 8 | 9 | 10 | // No Item Found 11 | 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/pages/cart/sendModel.ts: -------------------------------------------------------------------------------- 1 | export class SendModel { 2 | id:string = null; 3 | group_id:string=null; 4 | itmcode:string = null ; 5 | description:any =null; 6 | name:any=null; 7 | itmprice:any =null; 8 | picture:any= null; 9 | amount:any=null; 10 | active:any=null; 11 | 12 | 13 | 14 | constructor(data){ 15 | this.id=data.id; 16 | this.group_id=data.group_id; 17 | this.itmcode =data.code; 18 | this.description=data.description; 19 | this.name=data.name; 20 | this.itmprice=data.itemprice; 21 | this.picture=data.picture; 22 | this.amount=data.qty; 23 | this.active=data.active; 24 | } 25 | } -------------------------------------------------------------------------------- /src/pages/contact/contact.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Profile 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 19 | 20 |

{{user_name}}

21 | Developer from @prismdevteam 22 | 23 |
24 | 25 | 26 | Account 27 | 28 | Orders Awaiting Shipments 29 | Leave Feedback 30 | 31 | 32 | Password 33 | 34 | Change Password 35 | 36 | 37 | 38 | 39 | Logout 40 | 41 | 42 | 43 | 44 |
45 | 46 |
47 | -------------------------------------------------------------------------------- /src/pages/contact/contact.scss: -------------------------------------------------------------------------------- 1 | page-contact { 2 | 3 | 4 | 5 | //ionic profile 6 | 7 | #profile-bg { 8 | position: fixed; 9 | left: 0; 10 | top: 44px; 11 | width: 100%; 12 | height: 150px; 13 | 14 | background: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/94311/bg.jpg') no-repeat transparent; 15 | background-size: 100%; 16 | background-position: 50% 20%; 17 | 18 | text-align: center; 19 | } 20 | 21 | #content { 22 | position: relative; 23 | margin-top: 150px; 24 | background-color: white; 25 | box-shadow: 0px -1px 10px rgba(0,0,0,0.4); 26 | padding-top: 200px; 27 | } 28 | 29 | #profile-info { 30 | position: absolute; 31 | top: -95px; 32 | width: 100%; 33 | z-index: 2; 34 | text-align: center; 35 | } 36 | #profile-name { 37 | color: #444; 38 | font-size: 26px; 39 | } 40 | #profile-description { 41 | font-size: 15px; 42 | color: #888; 43 | } 44 | #profile-description a { 45 | color: #888; 46 | } 47 | 48 | #profile-image { 49 | display: block; 50 | border-radius: 100px; 51 | border: 1px solid #fff; 52 | width: 128px; 53 | height: 128px; 54 | margin: 30px auto 0; 55 | box-shadow: 0px 0px 4px rgba(0,0,0,0.7); 56 | } 57 | 58 | .list-item-content { 59 | padding: 5px; 60 | } 61 | 62 | .list-item { 63 | color: #666666; 64 | } 65 | 66 | .post { 67 | color: #444; 68 | } 69 | 70 | .post-time { 71 | position: absolute; 72 | right: 10px; 73 | top: 5px; 74 | font-size: 11px; 75 | color: #888; 76 | } 77 | 78 | .post-profile-image { 79 | display: inline-block; 80 | vertical-align: top; 81 | width: 48px; 82 | height: 48px; 83 | margin-right: 10px; 84 | } 85 | .post-options { 86 | position: absolute; 87 | font-size: 16px; 88 | right: 5px; 89 | bottom: 5px; 90 | color: #888; 91 | } 92 | 93 | } 94 | -------------------------------------------------------------------------------- /src/pages/contact/contact.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { NavController,PopoverController,AlertController,ToastController,App } from 'ionic-angular'; 3 | import {ProfilePopoverPage} from '../../pages/profile-popover/profile-popover'; 4 | import { Http,Response } from '@angular/http'; 5 | import {OrdersPage} from '../../pages/orders/orders'; 6 | import {LoginPage} from '../../pages/login/login'; 7 | import { Storage } from '@ionic/storage'; 8 | 9 | @Component({ 10 | selector: 'page-contact', 11 | templateUrl: 'contact.html' 12 | }) 13 | export class ContactPage { 14 | 15 | public _htmlProperty: string = "

26 février 2016

52, rue des Paquerette

"; 16 | 17 | user_name; 18 | user_id; 19 | welcome_msg; 20 | user_pic; 21 | 22 | 23 | constructor(public _app:App,public storage:Storage,public navCtrl: NavController,public PopCtrl:PopoverController,public http:Http,public AlertCtrl:AlertController,public ToastCtrl:ToastController) { 24 | this.storage.ready() 25 | .then(() => this.temp_activities()) 26 | 27 | } 28 | 29 | //call popover methods 30 | presentPopover(myEvent) { 31 | let popover = this.PopCtrl.create(ProfilePopoverPage); 32 | popover.present({ 33 | ev: myEvent 34 | }); 35 | } 36 | 37 | 38 | //load user ativities 39 | 40 | public temp_activities(){ 41 | 42 | this.storage.get('profile_data').then((val) => { 43 | 44 | let profile=JSON.parse(val); 45 | console.log(profile); 46 | 47 | 48 | this.user_name = profile.user_name; 49 | this.user_id = profile.user_id; 50 | this.welcome_msg = profile.msg; 51 | this.user_pic = profile.picture; 52 | 53 | 54 | 55 | }); 56 | 57 | } 58 | 59 | access_orderAwaiting(){ 60 | this.navCtrl.push(OrdersPage); 61 | } 62 | 63 | logout(){ 64 | 65 | // your logout code whatevers 66 | this.storage.clear(); 67 | localStorage.clear(); 68 | this._app.getRootNav().setRoot(LoginPage); 69 | // this.navCtrl.push(LoginPage); 70 | 71 | 72 | } 73 | 74 | 75 | 76 | 77 | updatePassword(){ 78 | let alert = this.AlertCtrl.create({ 79 | title: 'Password Change', 80 | message: 'Are you sure, you want to update your password?', 81 | buttons: [ 82 | { 83 | text: 'Cancel', 84 | role: 'cancel', 85 | handler: () => { 86 | console.log('Cancel clicked'); 87 | } 88 | }, 89 | { 90 | text: 'Yes', 91 | handler: () => { 92 | 93 | let alert = this.AlertCtrl.create({ 94 | title: 'Update your password', 95 | inputs: [ 96 | { 97 | name: 'Password', 98 | placeholder: 'password' 99 | }, 100 | { 101 | name: 'Confirm_Password', 102 | placeholder: 'password' 103 | } 104 | 105 | ], 106 | buttons: [ 107 | { 108 | text: 'Cancel', 109 | role: 'cancel', 110 | handler: data => { 111 | console.log('Cancel clicked'); 112 | } 113 | }, 114 | { 115 | text: 'Send', 116 | handler: data => { 117 | if(this.validatePass(data)){ 118 | console.log('Data logic',data); 119 | }else{ 120 | this.showErrorToast(); 121 | } 122 | console.log('Password',data); 123 | 124 | } 125 | } 126 | ] 127 | }); 128 | alert.present(); 129 | 130 | 131 | 132 | 133 | } 134 | } 135 | ] 136 | }); 137 | alert.present(); 138 | 139 | 140 | } 141 | 142 | 143 | 144 | showErrorToast() { 145 | let toast = this.ToastCtrl.create({ 146 | message:'Password do not match', 147 | duration: 3000, 148 | position: 'top' 149 | }); 150 | 151 | toast.onDidDismiss(() => { 152 | console.log('Dismissed toast'); 153 | }); 154 | 155 | toast.present(); 156 | } 157 | 158 | 159 | 160 | 161 | validatePass(data) { 162 | 163 | var base_url=""; 164 | 165 | 166 | this.http.get(base_url).map(res => res.json()).subscribe(data => { 167 | let items = data.products; 168 | 169 | // your logic for password reset 170 | 171 | 172 | 173 | }, 174 | err => { 175 | console.log('error in Json'); 176 | 177 | }); 178 | } 179 | 180 | leaveFeedback(){ 181 | 182 | let alert = this.AlertCtrl.create({ 183 | title: 'Feedback', 184 | inputs: [ 185 | { 186 | name: 'Feedback', 187 | placeholder: 'What do you think about us !' 188 | } 189 | ], 190 | buttons: [ 191 | { 192 | text: 'Cancel', 193 | role: 'cancel', 194 | handler: data => { 195 | console.log('Cancel clicked'); 196 | } 197 | }, 198 | { 199 | text: 'Send', 200 | handler: data => { 201 | 202 | 203 | var obj= { 204 | user_name:'Sampaththeman', 205 | feedback:data.Feedback 206 | } 207 | console.log('Santizne',obj); 208 | } 209 | } 210 | ] 211 | }); 212 | alert.present(); 213 | } 214 | 215 | } 216 | -------------------------------------------------------------------------------- /src/pages/details/CartForServer.ts: -------------------------------------------------------------------------------- 1 | import {DetailsPage} from '../../pages/details/details'; 2 | 3 | export class CartForServerModel { 4 | // group_id:number =null; 5 | group_items:DetailsPage; 6 | 7 | constructor(data,group_items:DetailsPage){ 8 | this.group_items =group_items; 9 | 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /src/pages/details/CartForServerDetails.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | export class CartForServerDetails{ 4 | id:string = null; 5 | group_id:string=null; 6 | itmcode:string = null ; 7 | description:any =null; 8 | name:any=null; 9 | itmprice:any =null; 10 | picture:any= null; 11 | amount:any=null; 12 | active:any=null; 13 | 14 | 15 | 16 | constructor(data){ 17 | this.id=data.id; 18 | this.group_id=data.group_id; 19 | this.itmcode =data.code; 20 | this.description=data.description; 21 | this.name=data.name; 22 | this.itmprice=data.itemprice; 23 | this.picture=data.picture; 24 | this.amount=data.qty; 25 | this.active=data.active; 26 | } 27 | 28 | 29 | } -------------------------------------------------------------------------------- /src/pages/details/details.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | {{item.group_items[0].group_name}} 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |

27 | {{item.group_items[0].name}} 28 | {{item.group_items[0].description | slice:0:100}} 29 |

30 |

31 | £199 32 | {{item.group_items[0].itemprice}} 33 |

34 |
35 | 36 | 37 |
38 |
39 | 40 |
41 |
42 |
43 | 44 |

{{item.group_items[0].qty}}

45 | 46 | 47 |
48 | 49 |
50 |
51 | 52 | 54 | 55 | Add to Bag 56 | 57 |
58 | 59 | 60 | 61 | 62 |
63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 |

{{item.name| slice:0:30}}

85 | 86 |

{{item.description}}

87 |
88 |
89 | 90 | 91 | 92 | {{item.itemprice}} 93 | 94 | 95 | {{item.code}} 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 |
106 | 107 |

{{item.qty}}

108 | 109 | 110 |
111 |
112 |
113 |
114 |
115 | 116 | 117 |
118 |
119 | 123 |
124 |
125 | 129 |
130 |
131 | 132 | 133 | 134 |
135 | -------------------------------------------------------------------------------- /src/pages/details/details.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { DetailsPage } from './details'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | DetailsPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(DetailsPage), 11 | ], 12 | }) 13 | export class DetailsPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/home-search/home-search.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

{{ item.itmname| slice:0:30}}

31 | 32 |

33 | 34 |

35 |

36 | Price: LKR 37 |

38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |

{{item.qty}}

46 |
47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
56 |
57 |
58 |
59 | 60 | 61 | 62 | 63 | 64 |
65 | -------------------------------------------------------------------------------- /src/pages/home-search/home-search.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { HomeSearchPage } from './home-search'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | HomeSearchPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(HomeSearchPage), 11 | ], 12 | }) 13 | export class HomeSearchPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/home-search/home-search.scss: -------------------------------------------------------------------------------- 1 | page-home-search { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/home-search/home-search.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { Http,Response } from '@angular/http'; 3 | import { IonicPage, NavController, NavParams } from 'ionic-angular'; 4 | import {SelectCartProvider} from '../../providers/select-cart/select-cart'; 5 | import { ObjModel } from '../../pages/list/item'; 6 | import {ListPage} from '../../pages/list/list'; 7 | import { Storage } from '@ionic/storage'; 8 | import { Keyboard } from '@ionic-native/keyboard'; 9 | import { SegmentFilterPipe } from '../../pipes/segment-filter/segment-filter'; 10 | 11 | 12 | /** 13 | * Generated class for the HomeSearchPage page. 14 | * 15 | * See https://ionicframework.com/docs/components/#navigation for more info on 16 | * Ionic pages and navigation. 17 | */ 18 | 19 | @IonicPage() 20 | @Component({ 21 | selector: 'page-home-search', 22 | templateUrl: 'home-search.html', 23 | }) 24 | export class HomeSearchPage { 25 | 26 | public ShopItems2 = []; 27 | public Categories:any; 28 | public keys:any; 29 | Items:any = []; 30 | Clicked:any=[]; 31 | public buttonClicked: boolean = false; 32 | 33 | ITEM: string = ""; // initializing item Segments 34 | 35 | First :Array = new Array (); 36 | 37 | constructor(private keyboard: Keyboard,public select:SelectCartProvider,public storage:Storage,public http:Http,public navCtrl: NavController, public navParams: NavParams) { 38 | this.storage.ready() 39 | .then(() => this.getKeys()) 40 | .then(() => this.onToggleSelected()) 41 | .then(() => this.Categories=this.ShopItems2) 42 | .then(()=>this.ITEM = navParams.data.item) 43 | this.keyboard.close(); 44 | 45 | 46 | } 47 | 48 | ionViewDidLoad() { 49 | console.log('ionViewDidLoad HomeSearchPage'); 50 | } 51 | 52 | ionViewWillEnter() { 53 | 54 | this.storage.ready() 55 | .then(() => this.getKeys()) 56 | .then(() => this.onToggleSelected()) 57 | .then(()=> this.loadAvatar()) 58 | .then(() => this.CheckButtonClicked()) 59 | } 60 | 61 | loadAvatar(){ 62 | if(this.ITEM != null){ 63 | console.log('item',this.ITEM); 64 | this.Categories=SegmentFilterPipe.prototype.transform(this.ShopItems2,this.ITEM) 65 | }else{ 66 | this.Categories = this.ShopItems2; 67 | console.log('item',this.Categories); 68 | } 69 | 70 | } 71 | 72 | 73 | initializeItems() { 74 | this.ShopItems2; 75 | } 76 | 77 | CheckButtonClicked(){ 78 | 79 | if (this.select.SelectArray.length>0) { 80 | this.buttonClicked=true; 81 | }else{ 82 | this.buttonClicked =false; 83 | } 84 | 85 | 86 | } 87 | 88 | 89 | 90 | 91 | private async getKeys(){ 92 | this.ShopItems2=[]; 93 | this.keys = await this.storage.get('Item_List').then((val) => { 94 | let value = JSON.parse(val); 95 | this.ShopItems2=(value); 96 | }); 97 | } 98 | 99 | 100 | 101 | 102 | 103 | getItems1(ev: any) { 104 | this.initializeItems() 105 | let val = ev.target.value; 106 | 107 | if (val && val.trim() != '') { 108 | 109 | this.Categories = this.Categories.filter((item) => { 110 | return (item.itmname.toLowerCase().indexOf(val.toLowerCase()) > -1); 111 | }) 112 | 113 | } 114 | } 115 | 116 | setDecrement(item: any){ 117 | if(item.qty > 0) { 118 | item.qty--; 119 | } 120 | } 121 | 122 | //increment items 123 | setIncrement(item: any){ 124 | item.qty++; 125 | } 126 | 127 | notify(event,item) 128 | { 129 | if(item.qty != 0){ 130 | this.select.notify(event,item); 131 | this.CheckButtonClicked(); 132 | this.First.push(new ObjModel(item)); 133 | } 134 | } 135 | 136 | navigateTolistPage(){ 137 | this.navCtrl.push(ListPage); 138 | } 139 | 140 | 141 | 142 | ionViewDidLeave () { 143 | this.Categories=this.ShopItems2; 144 | console.log( 'view did leave' ); 145 | } 146 | 147 | 148 | 149 | 150 | // 151 | onToggleSelected() { 152 | 153 | this.ShopItems2.forEach((i) => { 154 | {i.selected=false;} 155 | {i.Checked =false;} 156 | {i.qty=1} 157 | }); 158 | 159 | this.Items.length=0; 160 | this.Clicked.length=0; 161 | } 162 | 163 | } -------------------------------------------------------------------------------- /src/pages/home/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 16 | 17 | 18 | SNAP APP 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | Product Image 32 | 33 | 34 | 35 | 36 | My Pics 37 | 38 | 39 | 40 | 41 | 42 | 43 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | Snap suggestions 74 | 75 | 76 | 77 | 78 | 79 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /src/pages/home/home.scss: -------------------------------------------------------------------------------- 1 | 2 | //page home slider for ios 3 | .ios{ 4 | page-home { 5 | .slider{ 6 | height:189px; 7 | margin-top:-22px; 8 | } 9 | 10 | } 11 | } 12 | 13 | 14 | //page home slider for android 15 | 16 | page-home { 17 | .slider{ 18 | height:180px; 19 | } 20 | 21 | 22 | 23 | 24 | 25 | 26 | // New Box Items 27 | 28 | .container{ 29 | margin: auto; 30 | flex-wrap: wrap; 31 | max-width: 1440px; 32 | text-align: center; 33 | } 34 | .box{ 35 | flex: 1; 36 | width: 30%; 37 | float: left; 38 | border-radius: 12px; 39 | margin: 1.66%; 40 | min-height: 60px; 41 | background: #fbfbfb85; 42 | display: inline-block; 43 | box-shadow: 0 10px 12px rgba(0,0,0, .4); 44 | } 45 | @media (max-width: 425px){ 46 | .box{ 47 | flex: 1; 48 | width: 30%; 49 | float: left; 50 | border-radius: 12px; 51 | margin: 1.66%; 52 | min-height: 60px; 53 | background: #fbfbfb85; 54 | display: inline-block; 55 | box-shadow: 0 10px 12px rgba(0,0,0, .4); 56 | 57 | } 58 | } 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | } 67 | 68 | .ios, .md { 69 | 70 | page-home { 71 | 72 | 73 | 74 | ion-scroll[scrollX] { 75 | white-space: nowrap; 76 | height: 120px; 77 | overflow: hidden; 78 | 79 | .scroll-item { 80 | display: inline-block; 81 | } 82 | 83 | .selectable-icon{ 84 | margin: 10px 20px 10px 20px; 85 | color: red; 86 | font-size: 100px; 87 | } 88 | 89 | ion-avatar img{ 90 | margin: 10px; 91 | } 92 | } 93 | 94 | ion-scroll[scroll-avatar]{ 95 | height: 60px; 96 | } 97 | 98 | /* Hide ion-content scrollbar */ 99 | ::-webkit-scrollbar{ 100 | display:none; 101 | } 102 | 103 | ion-item { 104 | width: 92%; 105 | margin: 4%; 106 | padding-left: 10px !important; 107 | margin-bottom: 10px; 108 | background-color: #fff; 109 | opacity: 0.7; 110 | font-size: 0.9em; 111 | transition: 0.2s linear; 112 | } 113 | 114 | ion-scroll[scrollX] { 115 | white-space: nowrap; 116 | height: 120px; 117 | overflow: hidden; 118 | 119 | .scroll-item { 120 | display: inline-block; 121 | } 122 | 123 | .selectable-icon{ 124 | margin: 10px 20px 10px 20px; 125 | color: red; 126 | font-size: 100px; 127 | } 128 | 129 | ion-avatar img{ 130 | margin: 10px; 131 | } 132 | } 133 | 134 | ion-scroll[scroll-avatar]{ 135 | height: 60px; 136 | } 137 | 138 | /* Hide ion-content scrollbar */ 139 | ::-webkit-scrollbar{ 140 | display:none; 141 | } 142 | 143 | } 144 | 145 | } 146 | 147 | 148 | -------------------------------------------------------------------------------- /src/pages/list/item.ts: -------------------------------------------------------------------------------- 1 | import {ItemDetails} from '../../pages/list/item_details'; 2 | 3 | 4 | export class ObjModel{ 5 | 6 | // group_id:number =null; 7 | // group_items:ItemDetails; 8 | 9 | 10 | // constructor(data, group_items:ItemDetails){ 11 | // this.group_id = data.group_id; 12 | 13 | // this.group_items =group_items; 14 | // } 15 | 16 | catid:number =null; 17 | catname:string=null; 18 | itmcode:any=null; 19 | itmname: any=null; 20 | itmprice:number =null; 21 | qty:number=null; 22 | description:any=null; 23 | availableqty:number=null; 24 | 25 | 26 | constructor(data){ 27 | console.log('item',data); 28 | this.catid = data.catid; 29 | this.catname=data.catname; 30 | this.itmcode=data.itmcode; 31 | this.itmname=data.itmprice; 32 | this.itmprice=data.itmprice; 33 | this.description=data.description; 34 | this.qty=data.qty; 35 | this.availableqty=data.availableqty; 36 | } 37 | 38 | 39 | } -------------------------------------------------------------------------------- /src/pages/list/item_details.ts: -------------------------------------------------------------------------------- 1 | export class ItemDetails{ 2 | 3 | id:string = null; 4 | code:string = null ; 5 | description:any =null; 6 | name:any=null; 7 | price:any =null; 8 | picture:any= null; 9 | qty:any=null; 10 | active:any=null; 11 | 12 | constructor(data){ 13 | console.log('ss',data); 14 | this.id=data.group_items[0].id; 15 | this.code =data.group_items[0].code; 16 | this.description=data.group_items[0].description; 17 | this.name=data.group_items[0].name; 18 | this.price=data.group_items[0].price; 19 | this.picture=data.group_items[0].picture; 20 | this.qty=data.group_items[0].qty; 21 | this.active=data.group_items[0].active; 22 | } 23 | 24 | 25 | } -------------------------------------------------------------------------------- /src/pages/list/list.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | List 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | Your Cart Description 30 | 31 | 32 | There are no products in your cart! 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 45 | 46 | 47 | 48 |

{{item.itmname}}

49 |

{{item.qty}} X {{item.itmprice}} = Rs {{item.qty*item.itmprice}}

50 | 53 | 54 |
55 | 56 | 57 | 58 | 59 | 62 | 63 | 66 | 67 | 68 | 69 | 70 | 71 | 72 |
73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | TOTAL 84 | 85 | 86 | 87 | 88 | 89 | Rs {{T_Amt}} 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 |
98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /src/pages/list/list.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { ListPage } from './list'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | ListPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(ListPage), 11 | ], 12 | }) 13 | export class ListPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/list/list.scss: -------------------------------------------------------------------------------- 1 | page-list { 2 | 3 | // $color-border--card: #F4F4F4; 4 | // $color-border--image: #E8E8E8; 5 | // $color-bkgrd--image: #F4F4F4; 6 | // $color-text: #333333; 7 | 8 | // $color-bkgrd--cta: #6FD830; 9 | // $color-text--cta: #FFF; 10 | // $color-bkgrd--flag: #5CC1DE; 11 | // $color-text--flag: #FFF; 12 | 13 | // $break: 0rem; 14 | 15 | 16 | // .fontlable{ 17 | // font-size: 15px; 18 | // } 19 | 20 | // .hide { 21 | // display: none; 22 | // } 23 | 24 | // .active{ 25 | // background-color:whitesmoke; 26 | // } 27 | 28 | // .red:before { 29 | // color: red; 30 | // } 31 | 32 | // .green:before { 33 | // color: green; 34 | // } 35 | 36 | // .flex_row { 37 | // display: -webkit-flex; 38 | // display: flex; 39 | // -webkit-flex-direction: row; 40 | // flex-direction: row; 41 | // } 42 | 43 | 44 | // .no-padding { 45 | // padding: 2px !important; 46 | // } 47 | 48 | // .card { 49 | // border: 0px solid $color-border--card; 50 | // border-radius: 0.0rem; 51 | 52 | // box-sizing: border-box; 53 | // color: $color-text; 54 | // display: flex; 55 | // flex-direction: column; 56 | // font-family: 'Avenir', 'Lato', sans-serif; 57 | // font-weight: 300; 58 | // margin: 0rem; 59 | // padding: { 60 | // top: 1rem; 61 | // right: 0; 62 | // bottom: 1rem; 63 | // left: 0; 64 | // } 65 | // @media screen and (min-width: $break) { 66 | // flex-direction: row; 67 | // } 68 | 69 | 70 | 71 | 72 | 73 | // &__right { 74 | // order: 2; 75 | // width: 100%; 76 | // box-sizing: border-box; 77 | // padding: 1.5rem; 78 | // @media screen and (min-width: $break) { 79 | // width: 55%; 80 | // } 81 | // } 82 | 83 | // &__left { 84 | // order: 1; 85 | // width: 100%; 86 | // margin: 0; 87 | // box-sizing: border-box; 88 | // padding: 1.5rem; 89 | // height: auto; 90 | 91 | // @media screen and (min-width: $break) { 92 | // width: 45%; 93 | // } 94 | // } 95 | 96 | // &__sale-flag, &__cta { 97 | // font-weight: 700; 98 | // text-transform: uppercase; 99 | // border-radius: 0.25rem; 100 | // text-align: center; 101 | // display: inline-block; 102 | // } 103 | 104 | // &__sale-flag { 105 | // color: $color-text--flag; 106 | // background-color: $color-bkgrd--flag; 107 | // font-size: 0.90rem; 108 | // padding: 0.25rem 0.75rem; 109 | // } 110 | 111 | // &__cta { 112 | // font-size: 1.25rem; 113 | // letter-spacing: 1.25px; 114 | // padding: 0.5rem 1rem; 115 | // border: none; 116 | // cursor: pointer; 117 | // color: $color-text--cta; 118 | // background-color: $color-bkgrd--cta; 119 | // } 120 | 121 | // &__name { 122 | // letter-spacing: 10px; 123 | // font-weight: 300; 124 | // margin-top: 0.75rem; 125 | // margin-bottom: 0.25rem; 126 | // font-size: 2.25rem; 127 | // } 128 | 129 | // &__price { 130 | // font-size: 3rem; 131 | // font-weight: 700; 132 | // margin-top: 0.25rem; 133 | // margin-bottom: 0; 134 | // } 135 | 136 | // &__info { 137 | 138 | // } 139 | 140 | // &__image { 141 | // box-sizing: border-box; 142 | 143 | // img { 144 | // width: 100%; 145 | // background-color: $color-bkgrd--image; 146 | // border: 1px solid $color-border--image; 147 | // border-radius: 0.5rem; 148 | // } 149 | // } 150 | // } 151 | 152 | 153 | } 154 | -------------------------------------------------------------------------------- /src/pages/list/list.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { IonicPage, NavController, NavParams,AlertController } from 'ionic-angular'; 3 | import {SelectModel} from '../../pages/about/SelectModel'; 4 | import { SelectCartProvider} from '../../providers/select-cart/select-cart'; 5 | import { ObjModel } from '../../pages/list/item'; 6 | import { ItemDetails} from '../../pages/list/item_details'; 7 | import { Http,Response,RequestOptions,Headers } from '@angular/http'; 8 | import { Storage } from '@ionic/storage'; 9 | import { HomePage} from '../../pages/home/home'; 10 | 11 | /** 12 | * Generated class for the ListPage page. 13 | * 14 | * See https://ionicframework.com/docs/components/#navigation for more info on 15 | * Ionic pages and navigation. 16 | */ 17 | 18 | @IonicPage() 19 | @Component({ 20 | selector: 'page-list', 21 | templateUrl: 'list.html', 22 | }) 23 | export class ListPage { 24 | public Cart:any; 25 | T_Amt : number=0.00; 26 | Temp_List:any = []; 27 | showEmptyCartMessage: boolean = false; 28 | user_id; 29 | 30 | constructor(public storage:Storage,public navCtrl: NavController, public navParams: NavParams,public Select:SelectCartProvider,public AlertCtrl:AlertController,public http:Http) { 31 | this.storage.get('user_id').then((val) => { 32 | this.user_id = JSON.parse(val); 33 | }); 34 | 35 | } 36 | 37 | ionViewDidLoad() { 38 | console.log('ionViewDidLoad ListPage'); 39 | } 40 | 41 | EmptyOrNo(){ 42 | if(this.Select.SelectArray.length>0){ 43 | this.showEmptyCartMessage=false; 44 | }else{ 45 | this.showEmptyCartMessage=true; 46 | } 47 | } 48 | 49 | 50 | //eqal function for NgInit() 51 | ionViewWillEnter() { 52 | this.loadData(); 53 | this.EmptyOrNo(); 54 | } 55 | 56 | // load data 57 | public loadData(){ 58 | this.Cart = this.Select.SelectArray; 59 | console.log('s',this.Cart); 60 | this.calcTotalAmount(); 61 | } 62 | 63 | 64 | 65 | //decrement items 66 | setDecrement(item: any){ 67 | if(item.qty > 0 && item.qty !== 1) { 68 | item.qty--; 69 | if(this.checkItem(item) === true){ 70 | let itemIndex = this.Select.SelectArray.findIndex(obj => obj.itmcode == item.itmcode); 71 | this.Select.SelectArray[itemIndex] = item; 72 | this.calcTotalAmount(); 73 | } 74 | 75 | } 76 | } 77 | 78 | //increment items 79 | setIncrement(item: any){ 80 | item.qty++; 81 | if(this.checkItem(item) === true){ 82 | let itemIndex = this.Select.SelectArray.findIndex(obj => obj.itmcode == item.itmcode); 83 | this.Select.SelectArray[itemIndex] = item; 84 | this.calcTotalAmount(); 85 | 86 | } 87 | } 88 | 89 | //checking items 90 | checkItem(item){ 91 | var isAvailable =false; 92 | for(var i = 0; i < this.Select.SelectArray.length; i++) { 93 | if(this.Select.SelectArray[i].itmcode === item.itmcode){ 94 | isAvailable=true; 95 | break; 96 | } 97 | } 98 | return isAvailable; 99 | } 100 | 101 | 102 | //remove item form item 103 | setRemoveItems(item:any){ 104 | if(this.checkItem(item) === true ){ 105 | this.Select.SelectArray = this.Select.SelectArray.filter(obj => obj.itmcode !== item.itmcode); 106 | this.Cart =this.Cart.filter(obj=>obj.itmcode!==item.itmcode); 107 | this.calcTotalAmount(); 108 | 109 | } 110 | } 111 | 112 | 113 | //calculate Total 114 | public calcTotalAmount(){ 115 | this.T_Amt=0; 116 | for(var i=0;i { 159 | console.log('Cancel clicked'); 160 | } 161 | }, 162 | { 163 | text: 'Create', 164 | handler: data => { 165 | obj.list_name=data.List; 166 | // pass data array 167 | console.log('check array',obj); 168 | 169 | let list=JSON.stringify(obj); 170 | 171 | var base_url = "http://snap.iqmedialabs.com/create_basket"; 172 | 173 | let headers = new Headers({ 'Content-Type': 'application/json' }); 174 | let options = new RequestOptions({ headers: headers }); 175 | 176 | 177 | 178 | this.http.post(base_url,list,options) 179 | .subscribe(data => { 180 | let body = data.json() 181 | console.log(body); 182 | 183 | if(body.status === true){ 184 | let alert = this.AlertCtrl.create({ 185 | title: 'Success', 186 | subTitle: ''+body.message, 187 | buttons: ['Dismiss'] 188 | }); 189 | alert.present(); 190 | this.Select.SelectArray.length = 0; 191 | localStorage.removeItem('TempCartItems'); 192 | this.navCtrl.push(HomePage); 193 | }else{ 194 | let alert = this.AlertCtrl.create({ 195 | title: 'Error', 196 | subTitle: 'Something went wrong.please check again!', 197 | buttons: ['Dismiss'] 198 | }); 199 | alert.present(); 200 | 201 | } 202 | 203 | 204 | }, error => { 205 | console.log("Oooops!"); 206 | }); 207 | 208 | 209 | 210 | console.log(list); 211 | } 212 | } 213 | ] 214 | }); 215 | alert.present(); 216 | 217 | } 218 | 219 | 220 | 221 | 222 | 223 | } 224 | -------------------------------------------------------------------------------- /src/pages/login/login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 20 | 21 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 37 | 38 |
39 |
40 | 41 |
42 |
43 | 44 | 45 |
46 |
47 | 48 | 49 |
50 | 51 |
52 | 53 |
54 | 55 | 56 | 57 | 58 | 59 |
-------------------------------------------------------------------------------- /src/pages/login/login.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { LoginPage } from './login'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | LoginPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(LoginPage), 11 | ], 12 | }) 13 | export class LoginPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/login/login.scss: -------------------------------------------------------------------------------- 1 | .ios, .md { 2 | 3 | page-login { 4 | 5 | .scroll-content { 6 | background-color: #00a3d5; 7 | background-image: url(../assets/imgs/main-bg.png); 8 | display: flex; 9 | flex-direction: column; 10 | overflow: hidden; 11 | } 12 | 13 | img { 14 | max-width: 100%; 15 | height: auto; 16 | margin: 0 auto; 17 | } 18 | 19 | #cloud-layer { 20 | background-image: url(../assets/imgs/cloud-layer.png); 21 | background-size: cover; 22 | width: 100%; 23 | height: 100%; 24 | } 25 | 26 | ion-row { 27 | align-items: center; 28 | text-align: center; 29 | } 30 | 31 | ion-item { 32 | border-radius: 30px !important; 33 | padding-left: 10px !important; 34 | margin-bottom: 10px; 35 | background-color: #ffffff; 36 | opacity: 0.7; 37 | font-size: 0.9em; 38 | } 39 | 40 | ion-list { 41 | margin: 0; 42 | } 43 | 44 | .login-button { 45 | width: 100%; 46 | border-radius: 30px; 47 | font-size: 0.9em; 48 | border: 1px solid #fff; 49 | background-color: #4C301B; 50 | } 51 | 52 | .facebook-button{ 53 | width:100%; 54 | border-radius:30px; 55 | font-size:0.9em; 56 | border:1px solid #fff; 57 | background-color:#366dd0; 58 | } 59 | 60 | .google-button{ 61 | width:100%; 62 | border-radius:30px; 63 | font-size:0.9em; 64 | border:1px solid #fff; 65 | background-color:#D62D20; 66 | } 67 | 68 | 69 | } 70 | .login-error { 71 | .toast-wrapper { 72 | background:#f64539; 73 | 74 | } 75 | .toast-message { 76 | font-size:12px; 77 | } 78 | } 79 | 80 | 81 | } -------------------------------------------------------------------------------- /src/pages/notification/notification.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | Notification 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |

Status: {{ product.status }}

23 |

24 | 25 | 26 |

27 | 28 |

29 |

30 | 31 |
32 |
33 | 34 |
35 | 36 |
37 | -------------------------------------------------------------------------------- /src/pages/notification/notification.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { NotificationPage } from './notification'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | NotificationPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(NotificationPage), 11 | ], 12 | }) 13 | export class NotificationPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/notification/notification.scss: -------------------------------------------------------------------------------- 1 | page-notification { 2 | 3 | 4 | 5 | 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/pages/notification/notification.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { IonicPage, NavController, NavParams,AlertController,LoadingController } from 'ionic-angular'; 3 | import { Http,Response,RequestOptions,Headers } from '@angular/http'; 4 | import { Storage } from '@ionic/storage'; 5 | import{NotificatonsPipe} from '../../pipes/notificatons/notificatons'; 6 | 7 | /** 8 | * Generated class for the NotificationPage page. 9 | * 10 | * See https://ionicframework.com/docs/components/#navigation for more info on 11 | * Ionic pages and navigation. 12 | */ 13 | 14 | @IonicPage() 15 | @Component({ 16 | selector: 'page-notification', 17 | templateUrl: 'notification.html', 18 | }) 19 | export class NotificationPage { 20 | user_id; 21 | Notification=[]; 22 | Final=[]; 23 | 24 | 25 | 26 | constructor(public loading:LoadingController,public AlertCtrl:AlertController,public storage:Storage,public navCtrl: NavController, public navParams: NavParams,public http:Http) { 27 | this.storage.ready() 28 | .then(() => this.getuser()) 29 | .then(() => this.get_notifications()) 30 | // this.get_notifications(); 31 | 32 | } 33 | 34 | ionViewWillEnter(){ 35 | this.storage.ready() 36 | .then(() => this.get_notifications()) 37 | } 38 | 39 | 40 | 41 | ionViewDidLoad() { 42 | console.log('ionViewDidLoad NotificationPage'); 43 | } 44 | 45 | //load user_id 46 | getuser(){ 47 | this.storage.get('user_id').then((val) => { 48 | this.user_id = JSON.parse(val); 49 | console.log('user',this.user_id); 50 | }); 51 | } 52 | 53 | 54 | // Methods for get Notifications 55 | 56 | public get_notifications(){ 57 | 58 | var base_url="http://snap.iqmedialabs.com/notifications"; 59 | 60 | let headers = new Headers({ 'Content-Type': 'application/json' }); 61 | let options = new RequestOptions({ headers: headers }); 62 | 63 | 64 | let dataz = JSON.stringify({ 65 | user_id:this.user_id 66 | 67 | }); 68 | 69 | this.http.post(base_url,dataz,options) 70 | .subscribe(data => { 71 | let body = data.json(); 72 | this.Notification= body; 73 | console.log(body); 74 | }, error => { 75 | console.log("Oooops!"); 76 | 77 | }); 78 | 79 | } 80 | 81 | 82 | loadItemInside(item_id){ 83 | 84 | let loading = this.loading.create({ 85 | content: 'Loading Orders ! Please wait...', 86 | spinner: 'crescent' 87 | 88 | }); 89 | 90 | this.Final=NotificatonsPipe.prototype.transform(this.Notification,item_id); 91 | console.log(this.Final); 92 | 93 | setTimeout(() => { 94 | loading.dismiss(); 95 | }, 5000); 96 | } 97 | 98 | 99 | } 100 | -------------------------------------------------------------------------------- /src/pages/offer-load/offer-load.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | {{item.itmname}} 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | {{item.itmname}}   27 | 28 | 29 | 30 |

31 | 32 | 33 |
34 | 35 | 36 |
37 | 38 | 39 | 40 | 41 | Specifications 42 | 43 | 44 | 45 | 46 | 47 | NAME 48 | 49 | 50 | Features 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |

{{item.qty}}

61 |
62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 |
70 |
71 | 72 | 73 | 74 | 75 | 76 |
77 |
78 | 79 | 80 | 81 | 82 | Reviews 83 | 84 | 85 | 86 | 87 | 88 | Name
89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 |
106 | 107 | 108 |
109 |
110 |
111 |
112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 |
120 | -------------------------------------------------------------------------------- /src/pages/offer-load/offer-load.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { OfferLoadPage } from './offer-load'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | OfferLoadPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(OfferLoadPage), 11 | ], 12 | }) 13 | export class OfferLoadPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/offer-load/offer-load.scss: -------------------------------------------------------------------------------- 1 | page-offer-load { 2 | 3 | 4 | } 5 | -------------------------------------------------------------------------------- /src/pages/offer-load/offer-load.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { IonicPage, NavController, NavParams } from 'ionic-angular'; 3 | import {SelectCartProvider} from '../../providers/select-cart/select-cart'; 4 | import {ListPage} from '../../pages/list/list'; 5 | import { ObjModel } from '../../pages/list/item'; 6 | 7 | /** 8 | * Generated class for the OfferLoadPage page. 9 | * 10 | * See https://ionicframework.com/docs/components/#navigation for more info on 11 | * Ionic pages and navigation. 12 | */ 13 | 14 | @IonicPage() 15 | @Component({ 16 | selector: 'page-offer-load', 17 | templateUrl: 'offer-load.html', 18 | }) 19 | export class OfferLoadPage { 20 | item; 21 | public buttonClicked: boolean = false; 22 | First :Array = new Array (); 23 | 24 | constructor(public select:SelectCartProvider,public navCtrl: NavController, public navParams: NavParams) { 25 | this.item= navParams.data.item; 26 | } 27 | 28 | ionViewDidLoad() { 29 | console.log('ionViewDidLoad OfferLoadPage'); 30 | } 31 | 32 | setDecrement(item: any){ 33 | if(item.qty > 0) { 34 | item.qty--; 35 | } 36 | } 37 | 38 | //increment items 39 | setIncrement(item: any){ 40 | item.qty++; 41 | } 42 | 43 | CheckButtonClicked(){ 44 | 45 | if (this.select.SelectArray.length>0) { 46 | this.buttonClicked=true; 47 | }else{ 48 | this.buttonClicked =false; 49 | } 50 | 51 | 52 | } 53 | 54 | 55 | notify(event,item) 56 | { 57 | if(item.qty != 0){ 58 | this.select.notify(event,item); 59 | this.CheckButtonClicked(); 60 | this.First.push(new ObjModel(item)); 61 | } 62 | } 63 | 64 | navigateTolistPage(){ 65 | this.navCtrl.push(ListPage); 66 | } 67 | 68 | ionViewWillEnter() { 69 | this.CheckButtonClicked(); 70 | 71 | } 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | } 85 | -------------------------------------------------------------------------------- /src/pages/orders/orders.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | Orders 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Your Cart Description 24 | 25 | 26 | There are no products in your cart! 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |

{{ product.itmname }}

41 |

42 | 43 | 44 | 45 |

46 | 47 |
48 |
49 |
50 | 51 |
52 |
53 | 54 | -------------------------------------------------------------------------------- /src/pages/orders/orders.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { OrdersPage } from './orders'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | OrdersPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(OrdersPage), 11 | ], 12 | }) 13 | export class OrdersPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/orders/orders.scss: -------------------------------------------------------------------------------- 1 | page-orders { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/orders/orders.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { IonicPage, NavController, NavParams } from 'ionic-angular'; 3 | import { Http,Response,RequestOptions,Headers} from '@angular/http'; 4 | import { Storage } from '@ionic/storage'; 5 | import { LoadingController } from 'ionic-angular'; 6 | import { OrderPipe} from '../../pipes/order/order' 7 | import 'rxjs/add/operator/debounceTime'; 8 | import 'rxjs/Rx'; 9 | 10 | 11 | /** 12 | * Generated class for the OrdersPage page. 13 | * 14 | * See https://ionicframework.com/docs/components/#navigation for more info on 15 | * Ionic pages and navigation. 16 | */ 17 | 18 | @IonicPage() 19 | @Component({ 20 | selector: 'page-orders', 21 | templateUrl: 'orders.html', 22 | }) 23 | export class OrdersPage { 24 | OrderList =[]; 25 | user_id; 26 | Final =[]; 27 | showEmptyCartMessage: boolean = false; 28 | 29 | constructor(public storage:Storage,public http:Http,public navCtrl: NavController, public navParams: NavParams,public loadingCtrl:LoadingController) { 30 | this.storage.ready() 31 | .then(() => this.loadOrders()) 32 | } 33 | 34 | ionViewDidLoad() { 35 | console.log('ionViewDidLoad OrdersPage'); 36 | } 37 | 38 | ionViewWillEnter() { 39 | this.storage.ready() 40 | .then(() => this.loadOrders()) 41 | // .then(()=> this.EmptyOrNot()) 42 | } 43 | 44 | 45 | loadOrders(){ 46 | 47 | this.storage.get('user_id').then((val) => { 48 | let profile=JSON.parse(val); 49 | this.user_id = profile 50 | if(this.user_id != null){ 51 | this.loadCart(); 52 | } 53 | 54 | }).catch((empty) => { 55 | console.log('ERROR'); 56 | 57 | }); 58 | 59 | } 60 | 61 | 62 | EmptyOrNot(){ 63 | if(this.OrderList.length>0){ 64 | this.showEmptyCartMessage=false; 65 | }else{ 66 | this.showEmptyCartMessage=true; 67 | } 68 | } 69 | 70 | 71 | loadItemInside(item_id){ 72 | 73 | let loading = this.loadingCtrl.create({ 74 | content: 'Loading Orders ! Please wait...', 75 | spinner: 'crescent' 76 | 77 | }); 78 | 79 | this.Final=OrderPipe.prototype.transform(this.OrderList,item_id); 80 | 81 | setTimeout(() => { 82 | loading.dismiss(); 83 | }, 5000); 84 | } 85 | 86 | 87 | loadCart(){ 88 | 89 | var base_url="http://snap.iqmedialabs.com/order_history"; 90 | 91 | let headers = new Headers({ 'Content-Type': 'application/json' }); 92 | let options = new RequestOptions({ headers: headers }); 93 | 94 | 95 | 96 | let obj=JSON.stringify({ 97 | user_id:this.user_id 98 | }); 99 | 100 | let loading = this.loadingCtrl.create({ 101 | content: 'Loading Orders ! Please wait...', 102 | spinner: 'crescent' 103 | }); 104 | loading.present(); 105 | 106 | 107 | 108 | this.http.post(base_url,obj,options) 109 | .subscribe(data => { 110 | let body = data.json() 111 | 112 | if(body.status===false){ 113 | this.EmptyOrNot(); 114 | loading.dismiss(); 115 | }else{ 116 | this.OrderList = body; 117 | loading.dismiss(); 118 | 119 | } 120 | }, error => { 121 | let loading = this.loadingCtrl.create({ 122 | content: 'Loading Orders ! Please wait...', 123 | spinner: 'crescent' 124 | }); 125 | loading.present(); 126 | 127 | console.log("Oooops!"); 128 | 129 | }); 130 | 131 | 132 | 133 | 134 | } 135 | 136 | } 137 | -------------------------------------------------------------------------------- /src/pages/profile-edit/profile-edit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Profile 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |
20 | 21 |

Sampath Dissanayake

22 | Developer from @prismdevteam 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
32 | 33 |
34 | 35 | 36 | 37 | 38 |
39 |
40 | 41 | 42 | 43 | 44 |
45 |
46 | 47 |
48 |
49 | 50 | Gender 51 | 52 | Female 53 | Male 54 | 55 | 56 |
57 |
58 |
59 | 60 |
61 | 62 |
63 | 64 | 65 | 66 | 67 |
68 | 69 |
70 | 71 | 72 | 73 |
74 | 75 |
76 | 77 | 78 | 79 |
80 | 81 | 82 |
83 | 84 | 85 | 86 |
87 | 88 | 89 | 90 | 91 | 92 | 93 |
94 |
95 | 96 | 97 | 98 |
99 | -------------------------------------------------------------------------------- /src/pages/profile-edit/profile-edit.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { ProfileEditPage } from './profile-edit'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | ProfileEditPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(ProfileEditPage), 11 | ], 12 | }) 13 | export class ProfileEditPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/profile-edit/profile-edit.scss: -------------------------------------------------------------------------------- 1 | page-profile-edit { 2 | #profile-bg { 3 | position: fixed; 4 | left: 0; 5 | top: 44px; 6 | width: 100%; 7 | height: 150px; 8 | 9 | background: url('https://s3-us-west-2.amazonaws.com/s.cdpn.io/94311/bg.jpg') no-repeat transparent; 10 | background-size: 100%; 11 | background-position: 50% 20%; 12 | 13 | text-align: center; 14 | } 15 | 16 | #content { 17 | position: relative; 18 | margin-top: 150px; 19 | background-color: white; 20 | box-shadow: 0px -1px 10px rgba(0,0,0,0.4); 21 | padding-top: 200px; 22 | } 23 | 24 | #profile-info { 25 | position: absolute; 26 | top: -95px; 27 | width: 100%; 28 | z-index: 2; 29 | text-align: center; 30 | } 31 | #profile-name { 32 | color: #444; 33 | font-size: 26px; 34 | } 35 | #profile-description { 36 | font-size: 15px; 37 | color: #888; 38 | } 39 | #profile-description a { 40 | color: #888; 41 | } 42 | 43 | #profile-image { 44 | display: block; 45 | border-radius: 100px; 46 | border: 1px solid #fff; 47 | width: 128px; 48 | height: 128px; 49 | margin: 30px auto 0; 50 | box-shadow: 0px 0px 4px rgba(0,0,0,0.7); 51 | } 52 | 53 | .list-item-content { 54 | padding: 5px; 55 | } 56 | 57 | .list-item { 58 | color: #666666; 59 | } 60 | 61 | .post { 62 | color: #444; 63 | } 64 | 65 | .post-time { 66 | position: absolute; 67 | right: 5px; 68 | top: 5px; 69 | font-size: 11px; 70 | color: #888; 71 | } 72 | 73 | .post-profile-image { 74 | display: inline-block; 75 | vertical-align: top; 76 | width: 48px; 77 | height: 48px; 78 | margin-right: 10px; 79 | } 80 | .post-options { 81 | position: absolute; 82 | font-size: 16px; 83 | right: 5px; 84 | bottom: 5px; 85 | color: #888; 86 | } 87 | 88 | .center_text { 89 | text-align: center; 90 | } 91 | 92 | 93 | //inline editor SCSS 94 | 95 | 96 | 97 | 98 | } 99 | -------------------------------------------------------------------------------- /src/pages/profile-popover/profile-popover.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | {{welcome_msg}} 14 | 17 | 18 | -------------------------------------------------------------------------------- /src/pages/profile-popover/profile-popover.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { ProfilePopoverPage } from './profile-popover'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | ProfilePopoverPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(ProfilePopoverPage), 11 | ], 12 | }) 13 | export class ProfilePopoverPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/profile-popover/profile-popover.scss: -------------------------------------------------------------------------------- 1 | page-profile-popover { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/profile-popover/profile-popover.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { IonicPage, NavController, NavParams,ViewController } from 'ionic-angular'; 3 | import {ProfileEditPage} from '../../pages/profile-edit/profile-edit'; 4 | import { Storage } from '@ionic/storage'; 5 | 6 | /** 7 | * Generated class for the ProfilePopoverPage page. 8 | * 9 | * See https://ionicframework.com/docs/components/#navigation for more info on 10 | * Ionic pages and navigation. 11 | */ 12 | 13 | @IonicPage() 14 | @Component({ 15 | selector: 'page-profile-popover', 16 | templateUrl: 'profile-popover.html', 17 | 18 | }) 19 | export class ProfilePopoverPage { 20 | user_name; 21 | user_id; 22 | welcome_msg; 23 | 24 | constructor(public storage:Storage,public navCtrl: NavController, public navParams: NavParams,public viewCtrl:ViewController) { 25 | this.loadData(); 26 | } 27 | 28 | ionViewDidLoad() { 29 | console.log('ionViewDidLoad ProfilePopoverPage'); 30 | this.loadData(); 31 | } 32 | 33 | //navigate to edit pages 34 | FireEditPages(){ 35 | this.navCtrl.push(ProfileEditPage); 36 | } 37 | 38 | 39 | loadData(){ 40 | 41 | 42 | 43 | this.storage.get('profile_data').then((val) => { 44 | 45 | let profile = JSON.parse(val); 46 | 47 | 48 | this.user_name = profile.user_name; 49 | this.user_id = profile.user_id; 50 | this.welcome_msg = profile.message; 51 | 52 | }); 53 | 54 | 55 | 56 | } 57 | 58 | 59 | //close view 60 | close(){ 61 | this.viewCtrl.dismiss(); 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /src/pages/single-purchase/single-purchase.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | Details Page 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | {{item.itmname}}   32 | 35 | 36 | 37 |

38 | 39 | 42 | 43 |
44 | 45 | 46 |
47 | 48 | 49 | 50 | 51 | Specifications 52 | 53 | 54 | 55 | 56 | 57 | NAME 58 | 59 | 60 | Features 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 |

{{item.qty}}

72 |
73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 |
81 |
82 | 83 |
84 |
85 | 86 | 87 | 88 | 89 | Reviews 90 | 91 | 92 | 93 | 94 | 95 | Name
96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
113 | 114 | 115 |
116 |
117 |
118 |
119 | 120 | 121 |
122 | -------------------------------------------------------------------------------- /src/pages/single-purchase/single-purchase.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { SinglePurchasePage } from './single-purchase'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | SinglePurchasePage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(SinglePurchasePage), 11 | ], 12 | }) 13 | export class SinglePurchasePageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/single-purchase/single-purchase.scss: -------------------------------------------------------------------------------- 1 | page-single-purchase { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/single-purchase/single-purchase.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { IonicPage, NavController, NavParams } from 'ionic-angular'; 3 | import {SelectCartProvider} from '../../providers/select-cart/select-cart'; 4 | import {ListPage} from '../../pages/list/list'; 5 | import { ObjModel } from '../../pages/list/item'; 6 | 7 | 8 | /** 9 | * Generated class for the SinglePurchasePage page. 10 | * 11 | * See https://ionicframework.com/docs/components/#navigation for more info on 12 | * Ionic pages and navigation. 13 | */ 14 | 15 | @IonicPage() 16 | @Component({ 17 | selector: 'page-single-purchase', 18 | templateUrl: 'single-purchase.html', 19 | }) 20 | export class SinglePurchasePage { 21 | 22 | item; 23 | First :Array = new Array (); 24 | public buttonClicked: boolean = false; 25 | 26 | constructor(public select:SelectCartProvider, public navCtrl: NavController, public navParams: NavParams) { 27 | this.item = this.navParams.data.item; 28 | console.log('V',this.item); 29 | 30 | } 31 | 32 | ionViewDidLoad() { 33 | console.log('ionViewDidLoad SinglePurchasePage'); 34 | } 35 | 36 | setDecrement(item: any){ 37 | if(item.qty > 0) { 38 | item.qty--; 39 | } 40 | } 41 | 42 | //increment items 43 | setIncrement(item: any){ 44 | item.qty++; 45 | } 46 | 47 | CheckButtonClicked(){ 48 | 49 | if (this.select.SelectArray.length>0) { 50 | this.buttonClicked=true; 51 | }else{ 52 | this.buttonClicked =false; 53 | } 54 | 55 | 56 | } 57 | 58 | 59 | notify(event,item) 60 | { 61 | if(item.qty != 0){ 62 | this.select.notify(event,item); 63 | this.CheckButtonClicked(); 64 | this.First.push(new ObjModel(item)); 65 | } 66 | } 67 | 68 | navigateTolistPage(){ 69 | this.navCtrl.push(ListPage); 70 | } 71 | 72 | 73 | 74 | 75 | } 76 | -------------------------------------------------------------------------------- /src/pages/tabs/tabs.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/pages/tabs/tabs.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | import { AboutPage } from '../about/about'; 4 | import { ContactPage } from '../contact/contact'; 5 | import { HomePage } from '../home/home'; 6 | import { CartPage} from '../cart/cart'; 7 | import { NotificationPage } from '../notification/notification'; 8 | import {FinalCartForServerProvider} from '../../providers/final-cart-for-server/final-cart-for-server' 9 | 10 | @Component({ 11 | templateUrl: 'tabs.html' 12 | }) 13 | export class TabsPage { 14 | CartBadgeCount : number = 0; // default 0 15 | tab1Root = HomePage; 16 | tab2Root = AboutPage; 17 | tab3Root = ContactPage; 18 | tab4Root = CartPage; 19 | tab5Root = NotificationPage; 20 | 21 | constructor(public FinalCart:FinalCartForServerProvider) { 22 | 23 | } 24 | 25 | load(){ 26 | return this.CartBadgeCount = this.FinalCart.CartBadgeCount; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/pages/user-registration/user-registration.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | User Registration 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |
21 | 22 | First Name 23 | 24 | 25 | 26 |

Sorry, field First Name is required!

27 |
28 |
29 | 30 |
31 | 32 | Last Name 33 | 34 | 35 | 36 |
37 |
38 | 39 | 40 | Password 41 | 42 | 43 | 44 | 45 | Gender 46 | 47 | Female 48 | Male 49 | 50 | 51 | 52 |
53 |
54 | 55 | Street 56 | 57 | 58 |
59 |
60 | 61 | Address 62 | 63 | 64 |
65 |
66 | 67 | Town 68 | 69 | 70 | 71 | 72 | Email 73 | 74 | 75 | 76 | 77 | Telephone 78 | 79 | 80 | 81 | 82 | 83 | 84 |
85 | 86 | 87 |
88 | -------------------------------------------------------------------------------- /src/pages/user-registration/user-registration.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { IonicPageModule } from 'ionic-angular'; 3 | import { UserRegistrationPage } from './user-registration'; 4 | 5 | @NgModule({ 6 | declarations: [ 7 | UserRegistrationPage, 8 | ], 9 | imports: [ 10 | IonicPageModule.forChild(UserRegistrationPage), 11 | ], 12 | }) 13 | export class UserRegistrationPageModule {} 14 | -------------------------------------------------------------------------------- /src/pages/user-registration/user-registration.scss: -------------------------------------------------------------------------------- 1 | page-user-registration { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/user-registration/user-registration.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { IonicPage, NavController, NavParams,AlertController } from 'ionic-angular'; 3 | import { FormBuilder, FormGroup, Validators, AbstractControl } from '@angular/forms'; 4 | import { Http,Response,Headers, RequestOptions } from '@angular/http'; 5 | import {LoginPage} from '../../pages/login/login'; 6 | import 'rxjs/Rx'; 7 | /** 8 | * Generated class for the UserRegistrationPage page. 9 | * 10 | * See https://ionicframework.com/docs/components/#navigation for more info on 11 | * Ionic pages and navigation. 12 | */ 13 | 14 | @IonicPage() 15 | @Component({ 16 | selector: 'page-user-registration', 17 | templateUrl: 'user-registration.html', 18 | }) 19 | export class UserRegistrationPage { 20 | 21 | authForm: FormGroup; 22 | 23 | masks:any; 24 | phoneNumber: any = ""; 25 | 26 | //generate controllers 27 | fname: AbstractControl; 28 | lname: AbstractControl; 29 | password: AbstractControl; 30 | street: AbstractControl; 31 | address: AbstractControl; 32 | town: AbstractControl; 33 | telephone: AbstractControl; 34 | email:AbstractControl; 35 | gender:AbstractControl; 36 | 37 | 38 | constructor(public navCtrl: NavController, public navParams: NavParams,public formBuilder:FormBuilder , public http:Http,public AlertCtrl:AlertController ) { 39 | this.masks={ 40 | phoneNumber: ['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/] 41 | 42 | }; 43 | 44 | this.authForm = formBuilder.group({ 45 | fname: ['', Validators.compose([Validators.required, Validators.minLength(3)])], 46 | lname: ['', Validators.compose([Validators.required, Validators.minLength(3)])], 47 | password: ['', Validators.compose([Validators.required, Validators.minLength(8)])], 48 | street: ['', Validators.compose([Validators.required, Validators.minLength(8)])], 49 | address: ['', Validators.compose([Validators.required, Validators.minLength(8)])], 50 | town: ['', Validators.compose([Validators.required, Validators.minLength(4)])], 51 | gender: ['', Validators.compose([Validators.required, Validators.minLength(1)])], 52 | telephone: ['', Validators.compose([Validators.required, Validators.minLength(10)])], 53 | email:['',Validators.compose([Validators.maxLength(70), Validators.pattern('^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$'), Validators.required])] 54 | }); 55 | 56 | 57 | 58 | } 59 | 60 | onSubmit(value: any):void{ 61 | 62 | // base url definition 63 | var base_url="http://snap.iqmedialabs.com/reg"; 64 | 65 | //Object Definition 66 | interface Name { 67 | inpt_fname: string; 68 | inpt_lname: string; 69 | inpt_passwd:string; 70 | inpt_street:string, 71 | inpt_addrss:string, 72 | inpt_town:string, 73 | inpt_email:string, 74 | inpt_contact:number, 75 | inpt_gender:string 76 | } 77 | 78 | 79 | let dataz = JSON.stringify({ 80 | inpt_fname: value.fname, 81 | inpt_lname: value.lname, 82 | inpt_passwd: value.password, 83 | inpt_street:value.street, 84 | inpt_addrss:value.address, 85 | inpt_town:value.town, 86 | inpt_email:value.email, 87 | inpt_contact:value.telephone, 88 | inpt_gender:value.gender 89 | }); 90 | 91 | console.log('Gender',dataz); 92 | 93 | 94 | 95 | 96 | let headers = new Headers({ 'Content-Type': 'application/json' }); 97 | let options = new RequestOptions({ headers: headers }); 98 | 99 | 100 | // POST METHOD TO SERVER 101 | this.http.post(base_url,dataz,options) 102 | .subscribe(data => { 103 | let body = data.json() 104 | console.log(body); 105 | if(body.status===true){ 106 | let alert = this.AlertCtrl.create({ 107 | title: 'Sucsess', 108 | subTitle: 'Sucessfully Registerd!', 109 | buttons: [ 110 | { 111 | text: 'Ok', 112 | handler: () => { 113 | this.navCtrl.push(LoginPage); 114 | this.navCtrl.popToRoot(); 115 | } 116 | } 117 | ] 118 | }); 119 | alert.present(); 120 | 121 | }else{ 122 | let alert = this.AlertCtrl.create({ 123 | title: 'Error', 124 | subTitle: ''+body. message+'! Please try again.', 125 | buttons: ['Dismiss'] 126 | }); 127 | alert.present(); 128 | 129 | } 130 | 131 | }, error => { 132 | console.log("Oooops!"); 133 | }); 134 | 135 | 136 | 137 | 138 | 139 | } 140 | 141 | ionViewDidLoad() { 142 | console.log('ionViewDidLoad UserRegistrationPage'); 143 | } 144 | 145 | } 146 | -------------------------------------------------------------------------------- /src/pipes/notificatons/notificatons.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | /** 4 | * Generated class for the NotificatonsPipe pipe. 5 | * 6 | * See https://angular.io/api/core/Pipe for more info on Angular Pipes. 7 | */ 8 | @Pipe({ 9 | name: 'notificatons', 10 | }) 11 | export class NotificatonsPipe implements PipeTransform { 12 | 13 | 14 | public servfiltered:any[]; 15 | serv2filterd: any[] = []; 16 | 17 | public transform(values: any[], item_name: string) { 18 | if (!values || !values.length) return []; 19 | if (!item_name) return values; 20 | this.servfiltered =values.filter(servl => servl.orderid==item_name); 21 | 22 | this.servfiltered.forEach( item => { 23 | this.serv2filterd=item.notifications; 24 | }); 25 | 26 | return this.serv2filterd; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/pipes/order/order.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | /** 4 | * Generated class for the OrderPipe pipe. 5 | * 6 | * See https://angular.io/api/core/Pipe for more info on Angular Pipes. 7 | */ 8 | @Pipe({ 9 | name: 'order', 10 | }) 11 | export class OrderPipe implements PipeTransform { 12 | /** 13 | * Takes a value and makes it lowercase. 14 | */ 15 | public servfiltered:any[]; 16 | serv2filterd: any[] = []; 17 | 18 | public transform(values: any[], item_name: string) { 19 | if (!values || !values.length) return []; 20 | if (!item_name) return values; 21 | this.servfiltered =values.filter(servl => servl.id==item_name); 22 | 23 | this.servfiltered.forEach( item => { 24 | this.serv2filterd=item.order; 25 | }); 26 | 27 | return this.serv2filterd; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/pipes/pipes.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { SegmentFilterPipe } from './segment-filter/segment-filter'; 3 | import { OrderPipe } from './order/order'; 4 | import { NotificatonsPipe } from './notificatons/notificatons'; 5 | @NgModule({ 6 | declarations: [SegmentFilterPipe, 7 | OrderPipe, 8 | NotificatonsPipe], 9 | imports: [], 10 | exports: [SegmentFilterPipe, 11 | OrderPipe, 12 | NotificatonsPipe] 13 | }) 14 | export class PipesModule {} 15 | -------------------------------------------------------------------------------- /src/pipes/segment-filter/segment-filter.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | 3 | /** 4 | * Generated class for the SegmentFilterPipe pipe. 5 | * 6 | * See https://angular.io/api/core/Pipe for more info on Angular Pipes. 7 | */ 8 | @Pipe({ 9 | name: 'segmentFilter', 10 | }) 11 | export class SegmentFilterPipe implements PipeTransform { 12 | /** 13 | * Takes a value and makes it lowercase. 14 | */ 15 | public servfiltered:any[]; 16 | 17 | public transform(values: any[], item_name: string) { 18 | if (!values || !values.length) return []; 19 | if (!item_name) return values; 20 | this.servfiltered =values.filter(servl => servl.catname==item_name); 21 | 22 | this.servfiltered.forEach((i) => { 23 | {i.selected=false;} 24 | {i.Checked =false;} 25 | }); 26 | 27 | return this.servfiltered; 28 | } 29 | 30 | 31 | 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/providers/cart/cart.ts: -------------------------------------------------------------------------------- 1 | import { Component,Input,OnInit,Injectable } from '@angular/core'; 2 | import { IonicPage, NavController, NavParams,AlertController,Platform } from 'ionic-angular'; 3 | import { Http,Response } from '@angular/http'; 4 | import 'rxjs/add/operator/map'; 5 | import {HomePage} from '../../pages/home/home'; 6 | import {CartDataModel} from '../../pages/about/cart_Data_Model'; 7 | import * as $ from 'jquery'; 8 | import { Storage } from '@ionic/storage'; 9 | import { LoadingController } from 'ionic-angular'; 10 | 11 | 12 | /* 13 | Generated class for the CartProvider provider. 14 | 15 | See https://angular.io/guide/dependency-injection for more info on providers 16 | and Angular DI. 17 | */ 18 | @Injectable() 19 | export class CartProvider { 20 | public ShopItems2: any; 21 | Items:any = []; 22 | Clicked:any=[]; 23 | 24 | showEmptyCartMessage: boolean = false; 25 | //Cart Array Definition 26 | CartDataArray :Array = new Array (); 27 | 28 | CartBadgeCount : number = 0; // default 0 29 | 30 | 31 | constructor(public loading:LoadingController,private http:Http,private platform:Platform,public storage: Storage) { 32 | // console.log('ShowEm',this.CartDataArray); 33 | } 34 | 35 | 36 | 37 | 38 | 39 | // public getItems() 40 | // { 41 | 42 | // var base_url = "http://snap.iqmedialabs.com/"; 43 | // if(localStorage.getItem("ShopItems2") === null){ 44 | // this.http.get(base_url+'itemlist').map(res => res.json()).subscribe(data => { 45 | // let items = data; 46 | // this.ShopItems2=data; 47 | // localStorage["ShopItems2"] = JSON.stringify(data); 48 | // }, 49 | // err => { 50 | // console.log('error in Json'); 51 | 52 | // }); 53 | 54 | // }else{ 55 | // this.ShopItems2 = JSON.parse(localStorage.getItem("ShopItems2")); 56 | // } 57 | // } 58 | 59 | 60 | //load item list 61 | 62 | 63 | load() { 64 | if (this.ShopItems2) { 65 | // already loaded data 66 | return Promise.resolve(this.ShopItems2); 67 | } 68 | 69 | // don't have the data yet 70 | return new Promise(resolve => { 71 | 72 | var base_url="http://snap.iqmedialabs.com/itemlist"; 73 | 74 | let loading = this.loading.create({ 75 | content: 'Please wait...', 76 | spinner: 'crescent' 77 | }); 78 | loading.present(); 79 | 80 | this.http.get(base_url).map(res => res.json()).subscribe(data => { 81 | let items = data; 82 | this.ShopItems2 = data; 83 | resolve(this.ShopItems2); 84 | 85 | 86 | this.storage.set('Item_List',JSON.stringify(this.ShopItems2)); 87 | loading.dismiss(); 88 | }, 89 | err => { 90 | console.log('error in Json'); 91 | 92 | }); 93 | 94 | }); 95 | } 96 | 97 | 98 | //add items to cart 99 | setCartItems(item:any){ 100 | if(!this.checkItem(item)){ 101 | 102 | this.CartDataArray.push( new CartDataModel(item)); 103 | this.incrementBadgeCount(); 104 | localStorage["Cart"] = JSON.stringify(this.CartDataArray); 105 | 106 | } 107 | } 108 | 109 | //remove items from cart 110 | setRemoveItems(item:any){ 111 | if(this.checkItem(item) === true ){ 112 | this.CartDataArray = this.CartDataArray.filter(obj => obj.id !== item.group_id); 113 | 114 | this.decrementBadgeCount(); 115 | localStorage["Cart"] = JSON.stringify(this.CartDataArray); 116 | this.onCancelClick(item); 117 | 118 | } 119 | } 120 | 121 | 122 | //decrement items 123 | setDecrement(item: any){ 124 | if(item.group_items[0].qty > 0) { 125 | item.group_items[0].qty--; 126 | } 127 | ; 128 | } 129 | 130 | //increment items 131 | setIncrement(item: any){ 132 | item.group_items[0].qty++; 133 | } 134 | 135 | 136 | //increment badge count 137 | incrementBadgeCount(){ 138 | this.CartBadgeCount = this.CartBadgeCount+1; 139 | } 140 | 141 | //decrement badge count 142 | decrementBadgeCount(){ 143 | this.CartBadgeCount = this.CartBadgeCount-1; 144 | } 145 | 146 | 147 | //checking items 148 | checkItem(item){ 149 | var isAvailable =false; 150 | for(var i = 0; i < this.CartDataArray.length; i++) { 151 | if(this.CartDataArray[i].id === item.group_id){ 152 | isAvailable=true; 153 | break; 154 | } 155 | } 156 | return isAvailable; 157 | } 158 | 159 | 160 | //Items Array 161 | ActivateItems(items){ 162 | if(items.group_items[0].qty !=0){ 163 | var i = this.Items.indexOf(items); 164 | if (i > -1) { 165 | 166 | } else { 167 | this.Items.push(items); 168 | items.selected = true; 169 | } 170 | }else{ 171 | 172 | } 173 | } 174 | 175 | DeactivateItems(items){ 176 | if(items.group_items[0].qty !=0){ 177 | var i = this.Items.indexOf(items); 178 | if (i > -1) { 179 | this.Items.splice(i, 1); 180 | items.selected = false; 181 | 182 | } else { 183 | 184 | } 185 | }else{ 186 | 187 | } 188 | } 189 | 190 | 191 | 192 | //Onbutton click 193 | onButtonClick(item){ 194 | if(item.group_items[0].qty !=0){ 195 | var i = this.Clicked.indexOf(item); 196 | if(i>-1){ 197 | 198 | }else{ 199 | this.Clicked.push(item); 200 | item.Checked = true; 201 | 202 | } 203 | 204 | }else{ 205 | 206 | } 207 | } 208 | 209 | 210 | 211 | onCancelClick(item){ 212 | 213 | for(var i = 0; i < this.Clicked.length; i++) { 214 | if(this.Clicked[i].group_id === item.id){ 215 | this.Clicked = this.Clicked.filter(obj => obj.group_id !== item.id); 216 | break; 217 | } 218 | 219 | } 220 | 221 | 222 | } 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | } 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | -------------------------------------------------------------------------------- /src/providers/final-cart-for-server/final-cart-for-server.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { ToastController } from 'ionic-angular'; 3 | import { Http } from '@angular/http'; 4 | import 'rxjs/add/operator/map'; 5 | import { CartForServerModel } from '../../pages/details/CartForServer'; 6 | /* 7 | Generated class for the FinalCartForServerProvider provider. 8 | 9 | See https://angular.io/guide/dependency-injection for more info on providers 10 | and Angular DI. 11 | */ 12 | @Injectable() 13 | export class FinalCartForServerProvider { 14 | 15 | //Final Array For Server 16 | FinalArrayForServer : Array = new Array (); 17 | // default 0 18 | CartBadgeCount : number = 0; 19 | stringArr = []; 20 | 21 | 22 | 23 | constructor(public http: Http,public Toast:ToastController) { 24 | console.log('Hello FinalCartForServerProvider Provider'); 25 | } 26 | 27 | 28 | 29 | 30 | 31 | //add items to cart 32 | setCartItems(item:any){ 33 | if(!this.checkItem(item) && item.qty !=0){ 34 | this.FinalArrayForServer.push( new CartForServerModel(item,item)); 35 | this.incrementBadgeCount(); 36 | this.presentToast(); 37 | } 38 | console.log('badge count',this.CartBadgeCount); 39 | } 40 | 41 | 42 | setCartItemsSingle(item:any){ 43 | console.log('itemSetcat',item); 44 | if(!this.checkItemSingle(item)){ 45 | this.FinalArrayForServer.push( new CartForServerModel(item.group_id,item.group_items)); 46 | console.log('set cart',this.FinalArrayForServer); 47 | this.incrementBadgeCount(); 48 | this.presentToast(); 49 | } 50 | console.log('badge count',this.CartBadgeCount); 51 | } 52 | 53 | 54 | presentToast() { 55 | let toast = this.Toast.create({ 56 | message: 'successfully added to your cart', 57 | duration: 3000, 58 | position: 'top' 59 | }); 60 | 61 | toast.onDidDismiss(() => { 62 | // console.log('Dismissed toast'); 63 | }); 64 | 65 | toast.present(); 66 | } 67 | 68 | 69 | 70 | 71 | //Increment Badge count 72 | incrementBadgeCount(){ 73 | this.CartBadgeCount = this.CartBadgeCount+1; 74 | } 75 | 76 | //decrement badge count 77 | decrementBadgeCount(){ 78 | if(this.CartBadgeCount !=0 ){ 79 | this.CartBadgeCount = this.CartBadgeCount-1; 80 | } 81 | } 82 | 83 | //checking items 84 | checkItem(item){ 85 | var isAvailable =false; 86 | for(var i = 0; i < this.FinalArrayForServer.length; i++) { 87 | console.log('Check',this.FinalArrayForServer[i]); 88 | if(this.FinalArrayForServer[i].group_items === item){ 89 | isAvailable=true; 90 | break; 91 | } 92 | } 93 | return isAvailable; 94 | } 95 | 96 | 97 | //checking items 98 | checkItemSingle(item){ 99 | 100 | const obj = { 101 | 102 | code:item.group_items.code, 103 | description:item.group_items.description, 104 | id:item.group_items.id, 105 | name:item.group_items.name, 106 | picture:item.group_items.picture, 107 | qty:item.group_items.qty, 108 | price:item.group_items.price, 109 | 110 | } 111 | 112 | 113 | 114 | for(let result of this.FinalArrayForServer){ 115 | this.stringArr.push(result.group_items); 116 | 117 | } 118 | 119 | var isAvailable =false; 120 | for(var i = 0; i < this.stringArr.length; i++) { 121 | if(this.stringArr[i].id === obj.id){ 122 | isAvailable=true; 123 | break; 124 | } 125 | } 126 | return isAvailable; 127 | 128 | } 129 | 130 | 131 | 132 | 133 | 134 | } 135 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /src/providers/select-cart/select-cart.ts: -------------------------------------------------------------------------------- 1 | import { Injectable } from '@angular/core'; 2 | import { Http } from '@angular/http'; 3 | import 'rxjs/add/operator/map'; 4 | import {SelectModel} from '../../pages/about/SelectModel' 5 | 6 | /* 7 | Generated class for the SelectCartProvider provider. 8 | 9 | See https://angular.io/guide/dependency-injection for more info on providers 10 | and Angular DI. 11 | */ 12 | @Injectable() 13 | export class SelectCartProvider { 14 | //Select Model 15 | 16 | SelectArray : Array = new Array (); 17 | Clicked:any=[]; 18 | Items:any=[]; 19 | public buttonClicked: boolean = false; 20 | constructor(public http: Http) { 21 | 22 | } 23 | 24 | 25 | // Cart Data Model 26 | 27 | notify(event,item) 28 | { 29 | 30 | console.log(this.SelectArray); 31 | if(item.qty !=0){ 32 | var i = this.Clicked.indexOf(item); 33 | if(i>-1){ 34 | this.Clicked.splice(i, 1); 35 | item.Checked = false; 36 | this.setRemoveItems(item); 37 | this.DeactivateItems(item); 38 | 39 | 40 | }else{ 41 | this.Clicked.push(item); 42 | item.Checked = true; 43 | this.setCartItems(item); 44 | this.ActivateItems(item); 45 | } 46 | 47 | }else{ 48 | 49 | } 50 | } 51 | 52 | 53 | set_qty(item){ 54 | if(item.qty !=0 && this.checkItem(item)){ 55 | for(var i = 0; i < this.SelectArray.length; i++) { 56 | if(this.SelectArray[i].itmcode === item.itmcode){ 57 | this.SelectArray[i].qty === item.qty; 58 | console.log(this.SelectArray[i]); 59 | break; 60 | } 61 | } 62 | } 63 | } 64 | 65 | 66 | //checking items 67 | checkItem(item){ 68 | console.log('checkingItem',this.SelectArray); 69 | var isAvailable =false; 70 | for(var i = 0; i < this.SelectArray.length; i++) { 71 | if(this.SelectArray[i].itmcode === item.itmcode){ 72 | isAvailable=true; 73 | break; 74 | } 75 | } 76 | return isAvailable; 77 | } 78 | 79 | 80 | 81 | //add items to cart 82 | setCartItems(item:any){ 83 | if(!this.checkItem(item) && item.qty !=0){ 84 | this.SelectArray.push( new SelectModel(item)); 85 | } 86 | } 87 | 88 | 89 | 90 | //remove items from cart 91 | setRemoveItems(item:any){ 92 | if(this.checkItem(item) === true ){ 93 | this.SelectArray = this.SelectArray.filter(obj => obj.itmcode !== item.itmcode); 94 | } 95 | } 96 | 97 | 98 | //Items Array 99 | ActivateItems(items){ 100 | if(items.qty !=0){ 101 | var i = this.Items.indexOf(items); 102 | if (i > -1) { 103 | 104 | } else { 105 | this.Items.push(items); 106 | items.selected = true; 107 | } 108 | }else{ 109 | 110 | } 111 | } 112 | 113 | DeactivateItems(items){ 114 | if(items.qty !=0){ 115 | var i = this.Items.indexOf(items); 116 | if (i > -1) { 117 | this.Items.splice(i, 1); 118 | items.selected = false; 119 | 120 | } else { 121 | 122 | } 123 | }else{ 124 | 125 | } 126 | } 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | } 156 | -------------------------------------------------------------------------------- /src/service-worker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Check out https://googlechromelabs.github.io/sw-toolbox/ for 3 | * more info on how to use sw-toolbox to custom configure your service worker. 4 | */ 5 | 6 | 7 | 'use strict'; 8 | importScripts('./build/sw-toolbox.js'); 9 | 10 | self.toolbox.options.cache = { 11 | name: 'ionic-cache' 12 | }; 13 | 14 | // pre-cache our key assets 15 | self.toolbox.precache( 16 | [ 17 | './build/main.js', 18 | './build/vendor.js', 19 | './build/main.css', 20 | './build/polyfills.js', 21 | 'index.html', 22 | 'manifest.json' 23 | ] 24 | ); 25 | 26 | // dynamically cache any other local assets 27 | self.toolbox.router.any('/*', self.toolbox.fastest); 28 | 29 | // for any other requests go to the network, cache, 30 | // and then only use that cached resource if your user goes offline 31 | self.toolbox.router.default = self.toolbox.networkFirst; 32 | -------------------------------------------------------------------------------- /src/theme/variables.scss: -------------------------------------------------------------------------------- 1 | // Ionic Variables and Theming. For more info, please see: 2 | // http://ionicframework.com/docs/theming/ 3 | 4 | // Font path is used to include ionicons, 5 | // roboto, and noto sans fonts 6 | $font-path: "../assets/fonts/"; 7 | 8 | @font-face { 9 | font-family: Ubuntu; 10 | src: url("../assets/fonts/ubuntu.woff2"); 11 | } 12 | 13 | *{ 14 | font-family: "Ubuntu"; 15 | } 16 | 17 | 18 | // The app direction is used to include 19 | // rtl styles in your app. For more info, please see: 20 | // http://ionicframework.com/docs/theming/rtl-support/ 21 | $app-direction: ltr; 22 | 23 | 24 | @import "ionic.globals"; 25 | 26 | 27 | //custom styles 28 | 29 | @import "custom.scss"; 30 | 31 | 32 | // Shared Variables 33 | // -------------------------------------------------- 34 | // To customize the look and feel of this app, you can override 35 | // the Sass variables found in Ionic's source scss files. 36 | // To view all the possible Ionic variables, see: 37 | // http://ionicframework.com/docs/theming/overriding-ionic-variables/ 38 | 39 | 40 | 41 | 42 | // Named Color Variables 43 | // -------------------------------------------------- 44 | // Named colors makes it easy to reuse colors on various components. 45 | // It's highly recommended to change the default colors 46 | // to match your app's branding. Ionic uses a Sass map of 47 | // colors so you can add, rename and remove colors as needed. 48 | // The "primary" color is the only required color in the map. 49 | 50 | $colors: ( 51 | primary: #00a3d5, 52 | secondary: #32db64, 53 | danger: #f53d3d, 54 | light: #f4f4f4, 55 | dark: #222, 56 | iqcolor: #f4f4f4, 57 | royal: #FEC817, 58 | save : #2EDA66, 59 | fedex_secondry: #F37823, 60 | snowwhite: #ffffff 61 | ); 62 | 63 | 64 | // App iOS Variables 65 | // -------------------------------------------------- 66 | // iOS only Sass variables can go here 67 | 68 | 69 | 70 | 71 | // App Material Design Variables 72 | // -------------------------------------------------- 73 | // Material Design only Sass variables can go here 74 | $tabs-border-color:iqcolor; 75 | $tabs-md-tab-icon-color-active:royal; 76 | $tabs-md-tab-text-color: #222; 77 | $tabs-md-tab-text-color-active:royal; 78 | $checkbox-ios-icon-size:40px; 79 | 80 | 81 | 82 | 83 | 84 | // App Windows Variables 85 | // -------------------------------------------------- 86 | // Windows only Sass variables can go here 87 | 88 | 89 | 90 | 91 | // App Theme 92 | // -------------------------------------------------- 93 | // Ionic apps can have different themes applied, which can 94 | // then be future customized. This import comes last 95 | // so that the above variables are used and Ionic's 96 | // default are overridden. 97 | 98 | @import "ionic.theme.default"; 99 | 100 | 101 | // Ionicons 102 | // -------------------------------------------------- 103 | // The premium icon font for Ionic. For more info, please see: 104 | // http://ionicframework.com/docs/ionicons/ 105 | 106 | @import "ionic.ionicons"; 107 | 108 | 109 | // Fonts 110 | // -------------------------------------------------- 111 | 112 | //@import "Lato"; 113 | @import "noto-sans"; 114 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "allowJs":true, 5 | "declaration": false, 6 | "emitDecoratorMetadata": true, 7 | "experimentalDecorators": true, 8 | "lib": [ 9 | "dom", 10 | "es2015" 11 | ], 12 | "module": "es2015", 13 | "moduleResolution": "node", 14 | "sourceMap": true, 15 | "target": "es5" 16 | }, 17 | "include": [ 18 | "src/**/*.ts" 19 | ], 20 | "exclude": [ 21 | "node_modules" 22 | ], 23 | "compileOnSave": false, 24 | "atom": { 25 | "rewriteTsconfig": false 26 | } 27 | } -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-duplicate-variable": true, 4 | "no-unused-variable": [ 5 | true 6 | ] 7 | }, 8 | "rulesDirectory": [ 9 | "node_modules/tslint-eslint-rules/dist/rules" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /www/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/.gitkeep -------------------------------------------------------------------------------- /www/assets/data/deals_db.json: -------------------------------------------------------------------------------- 1 | { 2 | "products":[ 3 | { 4 | "id": 1, 5 | "code": "CHOC4LIFE", 6 | "description": "Lindt Excellence 70% Cocoa Chocolate Diamonds 60ct Box with Lancaster for $10.26", 7 | "name": "50% OFF Lindt", 8 | "expiration_date": "05/01/2016", 9 | "picture": "https://www.keellssuper.com/ItemImages/Big/Pic27256.jpg" 10 | }, { 11 | "id": 2, 12 | "code": "20LIGHT25", 13 | "description": "20% off Landscape Lighting and 25% off Outdoor Wall Light Fixtures with Coupon Code", 14 | "name": "20% OFF Landscape Lighting", 15 | "expiration_date": "07/07/2016", 16 | "picture": "https://www.keellssuper.com/ItemImages/Big/Pic15345.jpg" 17 | }, { 18 | "id": 3, 19 | "code": "MORETVPLZ3", 20 | "description": "Starz HD free trial extended for 3 months, in time for the new seasons of your favourite shows", 21 | "name": "3 Months FREE (Trial)", 22 | "expiration_date": "09/08/2016", 23 | "picture": "https://www.keellssuper.com/ItemImages/Big/Pic95756.jpg" 24 | }, { 25 | "id": 4, 26 | "code": "GETTHATPHONE212", 27 | "description": "Free 4 Month Notevault Subscription With Cat® Phones worth $578", 28 | "name": "CAT Limited Time Offer", 29 | "expiration_date": "04/30/2016", 30 | "picture": "https://www.keellssuper.com/ItemImages/Big/Pic97590.jpg" 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /www/assets/fonts/initializeItems: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/initializeItems -------------------------------------------------------------------------------- /www/assets/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/ionicons.eot -------------------------------------------------------------------------------- /www/assets/fonts/ionicons.scss: -------------------------------------------------------------------------------- 1 | 2 | // Ionicons Icon Font CSS 3 | // -------------------------- 4 | // Ionicons CSS for Ionic's element 5 | // ionicons-icons.scss has the icons and their unicode characters 6 | 7 | $ionicons-font-path: $font-path !default; 8 | 9 | @import "ionicons-icons"; 10 | @import "ionicons-variables"; 11 | 12 | 13 | @font-face { 14 | font-family: "Ionicons"; 15 | src: url("#{$ionicons-font-path}/ionicons.woff2?v=#{$ionicons-version}") format("woff2"), 16 | url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"), 17 | url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"); 18 | font-weight: normal; 19 | font-style: normal; 20 | } 21 | 22 | ion-icon { 23 | display: inline-block; 24 | 25 | font-family: "Ionicons"; 26 | -moz-osx-font-smoothing: grayscale; 27 | -webkit-font-smoothing: antialiased; 28 | font-style: normal; 29 | font-variant: normal; 30 | font-weight: normal; 31 | line-height: 1; 32 | text-rendering: auto; 33 | text-transform: none; 34 | speak: none; 35 | 36 | @include rtl() { 37 | &[aria-label^="arrow"]::before, 38 | &[flip-rtl]::before { 39 | transform: scaleX(-1); 40 | } 41 | 42 | &[unflip-rtl]::before { 43 | transform: scaleX(1); 44 | } 45 | } 46 | 47 | &::before { 48 | display: inline-block; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /www/assets/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/ionicons.ttf -------------------------------------------------------------------------------- /www/assets/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/ionicons.woff -------------------------------------------------------------------------------- /www/assets/fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/ionicons.woff2 -------------------------------------------------------------------------------- /www/assets/fonts/lato.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/lato.woff2 -------------------------------------------------------------------------------- /www/assets/fonts/noto-sans-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/noto-sans-bold.ttf -------------------------------------------------------------------------------- /www/assets/fonts/noto-sans-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/noto-sans-bold.woff -------------------------------------------------------------------------------- /www/assets/fonts/noto-sans-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/noto-sans-regular.ttf -------------------------------------------------------------------------------- /www/assets/fonts/noto-sans-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/noto-sans-regular.woff -------------------------------------------------------------------------------- /www/assets/fonts/noto-sans.scss: -------------------------------------------------------------------------------- 1 | // Noto Sans Font 2 | // Google 3 | // Apache License, version 2.0 4 | // http://www.apache.org/licenses/LICENSE-2.0.html 5 | 6 | $noto-sans-font-path: $font-path !default; 7 | 8 | @font-face { 9 | font-family: "Noto Sans"; 10 | font-style: normal; 11 | font-weight: 300; 12 | src: local("Noto Sans"), local("Noto-Sans-Regular"), url("#{$noto-sans-font-path}/noto-sans-regular.woff") format("woff"), url("#{$noto-sans-font-path}/noto-sans-regular.ttf") format("truetype"); 13 | } 14 | 15 | @font-face { 16 | font-family: "Noto Sans"; 17 | font-style: normal; 18 | font-weight: 400; 19 | src: local("Noto Sans"), local("Noto-Sans-Regular"), url("#{$noto-sans-font-path}/noto-sans-regular.woff") format("woff"), url("#{$noto-sans-font-path}/noto-sans-regular.ttf") format("truetype"); 20 | } 21 | 22 | @font-face { 23 | font-family: "Noto Sans"; 24 | font-style: normal; 25 | font-weight: 500; 26 | src: local("Noto Sans Bold"), local("Noto-Sans-Bold"), url("#{$noto-sans-font-path}/noto-sans-bold.woff") format("woff"), url("#{$noto-sans-font-path}/noto-sans-bold.ttf") format("truetype"); 27 | } 28 | 29 | @font-face { 30 | font-family: "Noto Sans"; 31 | font-style: normal; 32 | font-weight: 700; 33 | src: local("Noto Sans Bold"), local("Noto-Sans-Bold"), url("#{$noto-sans-font-path}/noto-sans-bold.woff") format("woff"), url("#{$noto-sans-font-path}/noto-sans-bold.ttf") format("truetype"); 34 | } 35 | -------------------------------------------------------------------------------- /www/assets/fonts/roboto-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-bold.ttf -------------------------------------------------------------------------------- /www/assets/fonts/roboto-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-bold.woff -------------------------------------------------------------------------------- /www/assets/fonts/roboto-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-bold.woff2 -------------------------------------------------------------------------------- /www/assets/fonts/roboto-light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-light.ttf -------------------------------------------------------------------------------- /www/assets/fonts/roboto-light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-light.woff -------------------------------------------------------------------------------- /www/assets/fonts/roboto-light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-light.woff2 -------------------------------------------------------------------------------- /www/assets/fonts/roboto-medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-medium.ttf -------------------------------------------------------------------------------- /www/assets/fonts/roboto-medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-medium.woff -------------------------------------------------------------------------------- /www/assets/fonts/roboto-medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-medium.woff2 -------------------------------------------------------------------------------- /www/assets/fonts/roboto-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-regular.ttf -------------------------------------------------------------------------------- /www/assets/fonts/roboto-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-regular.woff -------------------------------------------------------------------------------- /www/assets/fonts/roboto-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/roboto-regular.woff2 -------------------------------------------------------------------------------- /www/assets/fonts/roboto.scss: -------------------------------------------------------------------------------- 1 | // Roboto Font 2 | // Google 3 | // Apache License, version 2.0 4 | // http://www.apache.org/licenses/LICENSE-2.0.html 5 | 6 | $roboto-font-path: $font-path !default; 7 | 8 | @font-face { 9 | font-family: "Roboto"; 10 | font-style: normal; 11 | font-weight: 300; 12 | src: local("Roboto Light"), local("Roboto-Light"), url("#{$roboto-font-path}/roboto-light.woff2") format("woff2"), url("#{$roboto-font-path}/roboto-light.woff") format("woff"), url("#{$roboto-font-path}/roboto-light.ttf") format("truetype"); 13 | } 14 | 15 | @font-face { 16 | font-family: "Roboto"; 17 | font-style: normal; 18 | font-weight: 400; 19 | src: local("Roboto"), local("Roboto-Regular"), url("#{$roboto-font-path}/roboto-regular.woff2") format("woff2"), url("#{$roboto-font-path}/roboto-regular.woff") format("woff"), url("#{$roboto-font-path}/roboto-regular.ttf") format("truetype"); 20 | } 21 | 22 | @font-face { 23 | font-family: "Roboto"; 24 | font-style: normal; 25 | font-weight: 500; 26 | src: local("Roboto Medium"), local("Roboto-Medium"), url("#{$roboto-font-path}/roboto-medium.woff2") format("woff2"), url("#{$roboto-font-path}/roboto-medium.woff") format("woff"), url("#{$roboto-font-path}/roboto-medium.ttf") format("truetype"); 27 | } 28 | 29 | @font-face { 30 | font-family: "Roboto"; 31 | font-style: normal; 32 | font-weight: 700; 33 | src: local("Roboto Bold"), local("Roboto-Bold"), url("#{$roboto-font-path}/roboto-bold.woff2") format("woff2"), url("#{$roboto-font-path}/roboto-bold.woff") format("woff"), url("#{$roboto-font-path}/roboto-bold.ttf") format("truetype"); 34 | } 35 | -------------------------------------------------------------------------------- /www/assets/fonts/ubuntu.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/fonts/ubuntu.woff2 -------------------------------------------------------------------------------- /www/assets/icon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/icon/favicon.ico -------------------------------------------------------------------------------- /www/assets/imgs/atomix_user31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/atomix_user31.png -------------------------------------------------------------------------------- /www/assets/imgs/baskets/basket-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/baskets/basket-1.jpg -------------------------------------------------------------------------------- /www/assets/imgs/bg/main-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/bg/main-bg.png -------------------------------------------------------------------------------- /www/assets/imgs/buy-cart-ecommernce-shopping-icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/buy-cart-ecommernce-shopping-icon-29.png -------------------------------------------------------------------------------- /www/assets/imgs/empty-cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/empty-cart.png -------------------------------------------------------------------------------- /www/assets/imgs/icons/canned.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/icons/canned.png -------------------------------------------------------------------------------- /www/assets/imgs/icons/fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/icons/fb.png -------------------------------------------------------------------------------- /www/assets/imgs/icons/food.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/icons/food.png -------------------------------------------------------------------------------- /www/assets/imgs/icons/google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/icons/google.png -------------------------------------------------------------------------------- /www/assets/imgs/icons/homecare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/icons/homecare.png -------------------------------------------------------------------------------- /www/assets/imgs/icons/personal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/icons/personal.png -------------------------------------------------------------------------------- /www/assets/imgs/icons/snap-inner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/icons/snap-inner.png -------------------------------------------------------------------------------- /www/assets/imgs/item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/item.png -------------------------------------------------------------------------------- /www/assets/imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/logo.png -------------------------------------------------------------------------------- /www/assets/imgs/logos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/logos.png -------------------------------------------------------------------------------- /www/assets/imgs/main-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/main-bg.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/deals/Deals1-4.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/deals/Deals1-4.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/deals/Deals2-4.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/deals/Deals2-4.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/deals/Deals3-4.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/deals/Deals3-4.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/deals/Deals4-4.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/deals/Deals4-4.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion1-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion1-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion1-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion1-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion2-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion2-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion3-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion3-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion4-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion4-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion4-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion4-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion5-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion5-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion5-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion5-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion6-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion6-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion6-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion6-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion7-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion7-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion7-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion7-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion8-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion8-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion/Fashion8-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion/Fashion8-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion1_2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion1_2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion1_3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion1_3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion2_2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion2_2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion2_3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion2_3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion3_2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion3_2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion3_3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion3_3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion4_2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion4_2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion4_3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion4_3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion5_2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion5_2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion5_3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion5_3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion6_2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion6_2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion6_3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion6_3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion7_2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion7_2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion7_3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion7_3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion8_2-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion8_2-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/fashion_content/Fashion8_3-3.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/fashion_content/Fashion8_3-3.4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat1Foto1-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat1Foto1-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat1Foto2-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat1Foto2-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat1Foto3-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat1Foto3-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat1Foto4-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat1Foto4-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat1Foto5-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat1Foto5-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat2Foto1-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat2Foto1-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat2Foto2-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat2Foto2-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat2Foto3-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat2Foto3-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat2Foto4-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat2Foto4-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat2Foto5-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat2Foto5-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat3Foto1-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat3Foto1-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat3Foto2-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat3Foto2-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat3Foto3-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat3Foto3-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat3Foto4-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat3Foto4-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat3Foto5-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat3Foto5-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat4Foto1-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat4Foto1-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat4Foto2-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat4Foto2-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat4Foto3-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat4Foto3-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat4Foto4-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat4Foto4-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/Cat4Foto5-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/Cat4Foto5-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/foodlogo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/foodlogo1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/foodlogo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/foodlogo2.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/foodlogo3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/foodlogo3.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/food/foodlogo4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/food/foodlogo4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/getting-started/category1-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/getting-started/category1-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/getting-started/category2-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/getting-started/category2-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/getting-started/category3-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/getting-started/category3-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/getting-started/category4-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/getting-started/category4-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/getting-started/category5-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/getting-started/category5-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/getting-started/category6-1.1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/getting-started/category6-1.1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/real-state/RealState1-64.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/real-state/RealState1-64.25.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/real-state/RealState2-64.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/real-state/RealState2-64.25.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/real-state/RealState3-64.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/real-state/RealState3-64.25.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/real-state/RealState4-64.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/real-state/RealState4-64.25.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/real-state/RealState5-64.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/real-state/RealState5-64.25.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/Travel1-64.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/Travel1-64.47.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/Travel2-64.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/Travel2-64.47.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/Travel3-64.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/Travel3-64.47.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/Travel4-64.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/Travel4-64.47.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/Travel5-64.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/Travel5-64.47.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/TravelIcon1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/TravelIcon1.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/TravelIcon2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/TravelIcon2.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/TravelIcon3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/TravelIcon3.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/TravelIcon4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/TravelIcon4.png -------------------------------------------------------------------------------- /www/assets/imgs/sample-images/travel/TravelIcon5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/sample-images/travel/TravelIcon5.png -------------------------------------------------------------------------------- /www/assets/imgs/snap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/snap.png -------------------------------------------------------------------------------- /www/assets/imgs/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/welcome.png -------------------------------------------------------------------------------- /www/assets/imgs/welcome_illustration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sampaththeman/IQ-TEST/986ebad987688aaac897e17b1b0aa8392de1bf06/www/assets/imgs/welcome_illustration.png -------------------------------------------------------------------------------- /www/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | Ionic App 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 34 | 35 | 36 | 37 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /www/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Ionic", 3 | "short_name": "Ionic", 4 | "start_url": "index.html", 5 | "display": "standalone", 6 | "icons": [{ 7 | "src": "assets/imgs/logo.png", 8 | "sizes": "512x512", 9 | "type": "image/png" 10 | }], 11 | "background_color": "#4e8ef7", 12 | "theme_color": "#4e8ef7" 13 | } -------------------------------------------------------------------------------- /www/service-worker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Check out https://googlechromelabs.github.io/sw-toolbox/ for 3 | * more info on how to use sw-toolbox to custom configure your service worker. 4 | */ 5 | 6 | 7 | 'use strict'; 8 | importScripts('./build/sw-toolbox.js'); 9 | 10 | self.toolbox.options.cache = { 11 | name: 'ionic-cache' 12 | }; 13 | 14 | // pre-cache our key assets 15 | self.toolbox.precache( 16 | [ 17 | './build/main.js', 18 | './build/vendor.js', 19 | './build/main.css', 20 | './build/polyfills.js', 21 | 'index.html', 22 | 'manifest.json' 23 | ] 24 | ); 25 | 26 | // dynamically cache any other local assets 27 | self.toolbox.router.any('/*', self.toolbox.fastest); 28 | 29 | // for any other requests go to the network, cache, 30 | // and then only use that cached resource if your user goes offline 31 | self.toolbox.router.default = self.toolbox.networkFirst; 32 | --------------------------------------------------------------------------------