Commit f0bcc063 by amalk

10-12-2019

parents
# Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore
*~
*.sw[mnpcod]
.tmp
*.tmp
*.tmp.*
*.sublime-project
*.sublime-workspace
.DS_Store
Thumbs.db
UserInterfaceState.xcuserstate
$RECYCLE.BIN/
*.log
log.txt
npm-debug.log*
/.idea
/.ionic
/.sass-cache
/.sourcemaps
/.versions
/.vscode
/coverage
/dist
/node_modules
/platforms
/plugins
/www
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"defaultProject": "app",
"newProjectRoot": "projects",
"projects": {
"app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
"schematics": {},
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "www",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"assets": [
{
"glob": "**/*",
"input": "src/assets",
"output": "assets"
},
{
"glob": "**/*.svg",
"input": "node_modules/ionicons/dist/ionicons/svg",
"output": "./svg"
}
],
"styles": [
{
"input": "src/theme/variables.scss"
},
{
"input": "src/global.scss"
}
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
}
]
},
"ci": {
"progress": false
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "app:build"
},
"configurations": {
"production": {
"browserTarget": "app:build:production"
},
"ci": {
"progress": false
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "app:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"styles": [],
"scripts": [],
"assets": [
{
"glob": "favicon.ico",
"input": "src/",
"output": "/"
},
{
"glob": "**/*",
"input": "src/assets",
"output": "/assets"
}
]
},
"configurations": {
"ci": {
"progress": false,
"watch": false
}
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": ["**/node_modules/**"]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "app:serve"
},
"configurations": {
"production": {
"devServerTarget": "app:serve:production"
},
"ci": {
"devServerTarget": "app:serve:ci"
}
}
},
"ionic-cordova-build": {
"builder": "@ionic/angular-toolkit:cordova-build",
"options": {
"browserTarget": "app:build"
},
"configurations": {
"production": {
"browserTarget": "app:build:production"
}
}
},
"ionic-cordova-serve": {
"builder": "@ionic/angular-toolkit:cordova-serve",
"options": {
"cordovaBuildTarget": "app:ionic-cordova-build",
"devServerTarget": "app:serve"
},
"configurations": {
"production": {
"cordovaBuildTarget": "app:ionic-cordova-build:production",
"devServerTarget": "app:serve:production"
}
}
}
}
}
},
"cli": {
"defaultCollection": "@ionic/angular-toolkit"
},
"schematics": {
"@ionic/angular-toolkit:component": {
"styleext": "scss"
},
"@ionic/angular-toolkit:page": {
"styleext": "scss"
}
}
}
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# You can see what browsers were selected by your queries by running:
# npx browserslist
> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.
// Protractor configuration file, see link for more information
// https://github.com/angular/protractor/blob/master/lib/config.ts
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./src/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome'
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
onPrepare() {
require('ts-node').register({
project: require('path').join(__dirname, './tsconfig.json')
});
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
import { AppPage } from './app.po';
describe('new App', () => {
let page: AppPage;
beforeEach(() => {
page = new AppPage();
});
it('should be blank', () => {
page.navigateTo();
expect(page.getParagraphText()).toContain('The world is your oyster.');
});
});
import { browser, by, element } from 'protractor';
export class AppPage {
navigateTo() {
return browser.get('/');
}
getParagraphText() {
return element(by.deepCss('app-root ion-content')).getText();
}
}
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"jasminewd2",
"node"
]
}
}
{
"name": "rapport",
"integrations": {},
"type": "angular"
}
// Karma configuration file, see link for more information
// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageIstanbulReporter: {
dir: require('path').join(__dirname, '../coverage'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false
});
};
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "rapport",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "https://ionicframework.com/",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^8.2.14",
"@angular/cdk": "^8.2.3",
"@angular/common": "~8.1.2",
"@angular/core": "~8.1.2",
"@angular/flex-layout": "^8.0.0-beta.27",
"@angular/forms": "~8.1.2",
"@angular/platform-browser": "~8.1.2",
"@angular/platform-browser-dynamic": "~8.1.2",
"@angular/router": "~8.1.2",
"@ionic-native/core": "^5.0.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^4.7.1",
"core-js": "^2.5.4",
"rxjs": "~6.5.1",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/architect": "~0.801.2",
"@angular-devkit/build-angular": "~0.801.2",
"@angular-devkit/core": "~8.1.2",
"@angular-devkit/schematics": "~8.1.2",
"@angular/cli": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@angular/compiler-cli": "~8.1.2",
"@angular/language-service": "~8.1.2",
"@ionic/angular-toolkit": "^2.1.1",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "^5.0.0",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
},
"description": "An Ionic project"
}
import { NgModule } from "@angular/core";
import { PreloadAllModules, RouterModule, Routes } from "@angular/router";
const routes: Routes = [
{ path: "", redirectTo: "home", pathMatch: "full" },
{
path: "home",
loadChildren: () => import("./home/home.module").then(m => m.HomePageModule)
},
{
path: "landing",
loadChildren: () =>
import("./landing/landing.module").then(m => m.LandingPageModule)
},
{
path: "login",
loadChildren: () =>
import("./login/login.module").then(m => m.LoginPageModule)
},
{
path: "signup",
loadChildren: () =>
import("./signup/signup.module").then(m => m.SignupPageModule)
},
{
path: "forgot",
loadChildren: () =>
import("./forgot/forgot.module").then(m => m.ForgotPageModule)
},
{
path: "otp",
loadChildren: () => import("./otp/otp.module").then(m => m.OtpPageModule)
},
{
path: "profile",
loadChildren: () =>
import("./profile/profile.module").then(m => m.ProfilePageModule)
},
{
path: "chat",
loadChildren: () => import("./chat/chat.module").then(m => m.ChatPageModule)
},
{
path: "like",
loadChildren: () => import("./like/like.module").then(m => m.LikePageModule)
},
{
path: "chatmessages",
loadChildren: () =>
import("./chatmessages/chatmessages.module").then(
m => m.ChatmessagesPageModule
)
},
{
path: "chatpopover",
loadChildren: () =>
import("./chatpopover/chatpopover.module").then(
m => m.ChatpopoverPageModule
)
},
{
path: "profilesettings",
loadChildren: () =>
import("./profilesettings/profilesettings.module").then(
m => m.ProfilesettingsPageModule
)
},
{
path: "phonecode",
loadChildren: () =>
import("./phonecode/phonecode.module").then(m => m.PhonecodePageModule)
}
];
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
],
exports: [RouterModule]
})
export class AppRoutingModule {}
<ion-app>
<ion-router-outlet></ion-router-outlet>
<div class="bottom_main_tab_section">
<ul>
<li class="m1" (click)="goToPage('home')"></li>
<li class="m2" (click)="goToPage('chat')"></li>
<li class="m3" (click)="goToPage('like')"></li>
<li class="m4" (click)="goToPage('profilesettings')"></li>
</ul>
</div>
</ion-app>
\ No newline at end of file
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { TestBed, async } from '@angular/core/testing';
import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { AppComponent } from './app.component';
describe('AppComponent', () => {
let statusBarSpy, splashScreenSpy, platformReadySpy, platformSpy;
beforeEach(async(() => {
statusBarSpy = jasmine.createSpyObj('StatusBar', ['styleDefault']);
splashScreenSpy = jasmine.createSpyObj('SplashScreen', ['hide']);
platformReadySpy = Promise.resolve();
platformSpy = jasmine.createSpyObj('Platform', { ready: platformReadySpy });
TestBed.configureTestingModule({
declarations: [AppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
providers: [
{ provide: StatusBar, useValue: statusBarSpy },
{ provide: SplashScreen, useValue: splashScreenSpy },
{ provide: Platform, useValue: platformSpy },
],
}).compileComponents();
}));
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
it('should initialize the app', async () => {
TestBed.createComponent(AppComponent);
expect(platformSpy.ready).toHaveBeenCalled();
await platformReadySpy;
expect(statusBarSpy.styleDefault).toHaveBeenCalled();
expect(splashScreenSpy.hide).toHaveBeenCalled();
});
// TODO: add more tests!
});
import { Component } from "@angular/core";
import { Platform } from "@ionic/angular";
import { SplashScreen } from "@ionic-native/splash-screen/ngx";
import { StatusBar } from "@ionic-native/status-bar/ngx";
import { Router } from "@angular/router";
@Component({
selector: "app-root",
templateUrl: "app.component.html",
styleUrls: ["app.component.scss"]
})
export class AppComponent {
notShown: boolean;
constructor(
private platform: Platform,
private splashScreen: SplashScreen,
private statusBar: StatusBar,
private router: Router
) {
this.initializeApp();
this.notShown = true;
}
initializeApp() {
this.platform.ready().then(() => {
this.statusBar.styleDefault();
this.splashScreen.hide();
});
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { RouteReuseStrategy } from "@angular/router";
import { IonicModule, IonicRouteStrategy } from "@ionic/angular";
import { SplashScreen } from "@ionic-native/splash-screen/ngx";
import { StatusBar } from "@ionic-native/status-bar/ngx";
import { AppComponent } from "./app.component";
import { AppRoutingModule } from "./app-routing.module";
import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
import { MediaPageModule } from "../app/media/media.module";
import { ChatpopoverPageModule } from "../app/chatpopover/chatpopover.module";
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [
BrowserModule,
BrowserAnimationsModule,
IonicModule.forRoot(),
AppRoutingModule,
MediaPageModule,
ChatpopoverPageModule
],
providers: [
StatusBar,
SplashScreen,
{ provide: RouteReuseStrategy, useClass: IonicRouteStrategy }
],
bootstrap: [AppComponent]
})
export class AppModule {}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ChatPage } from './chat.page';
const routes: Routes = [
{
path: '',
component: ChatPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ChatPageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ChatPageRoutingModule } from './chat-routing.module';
import { ChatPage } from './chat.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
ChatPageRoutingModule
],
declarations: [ChatPage]
})
export class ChatPageModule {}
<ion-header>
<div class="nav_header">
<button class="nav_btn floatLeft"></button>
<div class="nav_header_title floatLeft">
Chats
</div>
<div class="clear"></div>
</div>
</ion-header>
<ion-content>
<div class="chat_list_wrapper">
<ion-list>
<ion-item (click)="goToPage('chatmessages')">
<ion-label>
<div class="circle_pic floatLeft"></div>
<div class="detail_section floatLeft">
<h5>Sofia Ella <span>24</span></h5>
<p>Hello !</p>
</div>
<div class="end_section floatRight textRight">
<div class="not floatRight">
2
</div>
<div class="clear"></div>
<p>05:30 PM</p>
<div class="clear"></div>
</div>
</ion-label>
</ion-item>
<ion-item (click)="goToPage('chatmessages')">
<ion-label>
<div class="circle_pic floatLeft"></div>
<div class="detail_section floatLeft">
<h5>Sofia Ella <span>24</span></h5>
<p>Hello !</p>
</div>
<div class="end_section floatRight textRight">
<div class="not floatRight">
2
</div>
<div class="clear"></div>
<p>05:30 PM</p>
<div class="clear"></div>
</div>
</ion-label>
</ion-item>
<ion-item (click)="goToPage('chatmessages')">
<ion-label>
<div class="circle_pic floatLeft"></div>
<div class="detail_section floatLeft">
<h5>Sofia Ella <span>24</span></h5>
<p>Hello !</p>
</div>
<div class="end_section floatRight textRight">
<div class="not floatRight">
2
</div>
<div class="clear"></div>
<p>05:30 PM</p>
<div class="clear"></div>
</div>
</ion-label>
</ion-item>
<ion-item (click)="goToPage('chatmessages')">
<ion-label>
<div class="circle_pic floatLeft"></div>
<div class="detail_section floatLeft">
<h5>Sofia Ella <span>24</span></h5>
<p>Hello !</p>
</div>
<div class="end_section floatRight textRight">
<div class="not floatRight">
2
</div>
<div class="clear"></div>
<p>05:30 PM</p>
<div class="clear"></div>
</div>
</ion-label>
</ion-item>
</ion-list>
</div>
</ion-content>
\ No newline at end of file
@import "../../global.scss";
.chat_list_wrapper {
.circle_pic {
width:50px;
height: 50px;
border-radius: 50%;
background-color: $primary_color;
background-image: url("../../assets/id.png");
background-position: center;
background-size: 30px;
background-repeat: no-repeat;
img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
border-radius: 50%;
}
}
.detail_section {
width:calc(100% - 130px);
padding: 5px;
padding-left:20px;
h5 {
margin:0px;
padding:0px;
color:$dark_prime;
font-size: 16px;
span{
color:$primary_color;
font-size: 14px;
position: relative;
bottom: 6px;
}
}
p {
margin:0px;
padding:0px;
color:#988FA7;
}
}
.end_section{
width: 80px;
height: 50px;
padding: 0px;
.not{
color:$white_color;
background-color:$primary_color;
width: 18px;
height: 18px;
border-radius: 50%;
text-align: center;
font-size: 13px;
margin-bottom: 7px;
}
p {
margin:0px;
padding:0px;
color:#988FA7;
text-align:right;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { ChatPage } from './chat.page';
describe('ChatPage', () => {
let component: ChatPage;
let fixture: ComponentFixture<ChatPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ChatPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(ChatPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
@Component({
selector: "app-chat",
templateUrl: "./chat.page.html",
styleUrls: ["./chat.page.scss"]
})
export class ChatPage implements OnInit {
constructor(private router: Router) {}
ngOnInit() {}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ChatmessagesPage } from './chatmessages.page';
const routes: Routes = [
{
path: '',
component: ChatmessagesPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ChatmessagesPageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ChatmessagesPageRoutingModule } from './chatmessages-routing.module';
import { ChatmessagesPage } from './chatmessages.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
ChatmessagesPageRoutingModule
],
declarations: [ChatmessagesPage]
})
export class ChatmessagesPageModule {}
<ion-header>
<div class="nav_header">
<button class="nav_btn back_icon floatLeft"></button>
<div class="nav_header_title floatLeft">
<span>Allison Adley</span>
</div>
<button class="nav_btn more_icon floatRight" (click)="chatPopover()"></button>
<div class="clear"></div>
</div>
</ion-header>
<ion-content>
<div class="chat_message_wrapper">
<ul>
<li>
<div class="message_inner_wrapper incoming_msg">
<div class="chat_picture">
</div>
<div class="time_message_section">
<div class="chat_message">
Hello..
</div>
<div class="chat_time">
03:00 PM
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
<li>
<div class="message_inner_wrapper outgoing_msg">
<div class="chat_picture">
</div>
<div class="time_message_section">
<div class="chat_time">
03:00 PM
</div>
<div class="chat_message">
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has
survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
<li>
<div class="message_inner_wrapper outgoing_msg">
<div class="chat_picture">
</div>
<div class="time_message_section">
<div class="chat_time">
03:00 PM
</div>
<div class="chat_message">
<div class="relative">
<img src="../../assets/profile.png">
</div>
lorem ipsum loard
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
<li>
<div class="message_inner_wrapper incoming_msg">
<div class="chat_picture">
</div>
<div class="time_message_section">
<div class="chat_time">
03:00 PM
</div>
<div class="chat_message">
<div class="relative">
<div class="overlay">
</div>
<img src="../../assets/profile.png" class="blur_image">
</div>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</li>
</ul>
</div>
</ion-content>
<ion-footer>
<div class="bottom_section">
<div class="message_type_area">
<input class="" type="text" placeholder="Type here">
<div class="photo" (click)="openModal()"></div>
<div class="clear"></div>
</div>
<div class="mesage_send"></div>
<div class="clear"></div>
</div>
</ion-footer>
\ No newline at end of file
@import "../../global.scss";
.online {
width: 10px;
height: 10px;
border-radius: 50%;
background-color: $primary_color;
}
.chat_message_wrapper {
ul {
padding: 10px;
margin: 0px;
li {
list-style: none;
padding-bottom: 20px;
.message_inner_wrapper {
width: 100%;
.chat_picture {
width: 40px;
height: 40px;
background: $secondary_color;
border-radius: 50%;
img {
width: 100%;
height: 100%;
object-position: center;
object-fit: cover;
}
}
.time_message_section {
padding-left: 10px;
padding-right: 10px;
width: calc(100% - 40px);
.chat_message {
padding: 10px;
max-width: 60%;
margin-left: 10px;
margin-right: 10px;
border-radius: 10px;
color: $dark_prime;
text-align: justify;
font-size: 14px;
line-height: 18px;
.overlay {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
background-image: url("../../assets/download.png");
background-position: center;
background-size: 40px;
background-repeat: no-repeat;
z-index: 99;
}
.blur_image {
-webkit-filter: blur(10px);
filter: blur(10px);
}
img {
border-radius: 10px;
}
}
.chat_time {
color: #D1D5DA;
font-size: 12px;
}
}
}
.incoming_msg {
.chat_picture {
float: left;
border: 1px solid #27AE60;
}
.time_message_section {
float: left;
flex-direction: row;
box-sizing: border-box;
display: flex;
place-content: flex-end flex-start;
align-items: flex-end;
.chat_message {
float: left;
background: $secondary_color;
border-bottom-left-radius: 0px;
img {
border-bottom-left-radius: 0px;
}
}
.chat_time {
float: left;
}
}
}
.outgoing_msg {
.chat_picture {
float: right;
border: 1px solid #4F3C7B;
}
.time_message_section {
float: right;
flex-direction: row;
box-sizing: border-box;
display: flex;
place-content: flex-end;
align-items: flex-end;
.chat_message {
float: right;
background-color: #E3E8EF;
border-bottom-right-radius: 0px;
img {
border-bottom-right-radius: 0px;
}
}
.chat_time {
float: right;
background-image: url("../../assets/tick.png");
background-repeat: no-repeat;
background-size: 9px;
padding-left: 20px;
background-position: 5px;
}
}
}
}
}
}
.bottom_section {
padding: 15px;
.message_type_area {
width: calc(100% - 55px);
float: left;
background-color: #F4F6F9;
border-radius: 25px;
input {
height: 50px;
float: left;
width: calc(100% - 50px);
border: none;
padding-left: 20px;
padding-right: 20px;
background-color: transparent;
&:focus {
outline: none;
}
&::placeholder {
color: $dark_prime;
}
}
.photo {
width: 50px;
height: 50px;
float: left;
background-image: url("../../assets/photo.png");
background-position: center;
background-repeat: no-repeat;
background-size: 20px;
}
}
.mesage_send {
float: right;
width: 50px;
height: 50px;
margin-left: 5px;
background-image: url("../../assets/send.png");
background-position: center;
background-repeat: no-repeat;
background-size: 100%;
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { ChatmessagesPage } from './chatmessages.page';
describe('ChatmessagesPage', () => {
let component: ChatmessagesPage;
let fixture: ComponentFixture<ChatmessagesPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ChatmessagesPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(ChatmessagesPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { ModalController } from "@ionic/angular";
import { MediaPage } from "../media/media.page";
import { PopoverController, NavParams, Events } from "@ionic/angular";
import { ChatpopoverPage } from "../chatpopover/chatpopover.page";
import { from } from "rxjs";
@Component({
selector: "app-chatmessages",
templateUrl: "./chatmessages.page.html",
styleUrls: ["./chatmessages.page.scss"]
})
export class ChatmessagesPage implements OnInit {
constructor(
public modalController: ModalController,
private popoverController: PopoverController
) {}
ngOnInit() {}
async openModal() {
const modal = await this.modalController.create({
component: MediaPage
});
return await modal.present();
}
async chatPopover(ev: any) {
const popover = await this.popoverController.create({
component: ChatpopoverPage,
event: ev,
componentProps: { page: "Login" },
cssClass: "popover_class"
});
return await popover.present();
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ChatpopoverPage } from './chatpopover.page';
const routes: Routes = [
{
path: '',
component: ChatpopoverPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ChatpopoverPageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ChatpopoverPageRoutingModule } from './chatpopover-routing.module';
import { ChatpopoverPage } from './chatpopover.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
ChatpopoverPageRoutingModule
],
declarations: [ChatpopoverPage]
})
export class ChatpopoverPageModule {}
<ion-header>
<ion-toolbar>
<ion-title>chatpopover</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
</ion-content>
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { ChatpopoverPage } from './chatpopover.page';
describe('ChatpopoverPage', () => {
let component: ChatpopoverPage;
let fixture: ComponentFixture<ChatpopoverPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ChatpopoverPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(ChatpopoverPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-chatpopover',
templateUrl: './chatpopover.page.html',
styleUrls: ['./chatpopover.page.scss'],
})
export class ChatpopoverPage implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ForgotPage } from './forgot.page';
const routes: Routes = [
{
path: '',
component: ForgotPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ForgotPageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ForgotPageRoutingModule } from './forgot-routing.module';
import { ForgotPage } from './forgot.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
ForgotPageRoutingModule
],
declarations: [ForgotPage]
})
export class ForgotPageModule {}
<ion-content>
<div class="nav_header">
<button class="nav_btn floatLeft">
<ion-icon name="md-arrow-dropleft"></ion-icon>
</button>
<div class="nav_header_title floatLeft">
Forgot Password
</div>
<div class="clear"></div>
</div>
<div class="login_wrapper">
<div class="login_title">
<img src="../../assets/wizard_four.png">
</div>
<div class="login_form">
<div class="login_row">
<input class="call" type="number" placeholder="Phone number">
</div>
<div class="login_row">
<button class="login_btn" (click)="goToPage('otp')">Send OTP</button>
</div>
</div>
<br>
</div>
</ion-content>
\ No newline at end of file
@import "../../global.scss";
.nav_header {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
background-color: transparent !important;
box-shadow: none !important;
.nav_btn {
font-size: 40px !important;
padding: 5px !important;
}
.nav_header_title {
color: $white_color !important;
padding-top: 14px !important;
padding-bottom: 14px !important;
text-transform: capitalize !important;
}
}
.login_wrapper {
height: 100vh;
width: 100%;
text-align: center;
.login_title {
width: 100%;
background-image: url("../../assets/wizard_bg.png");
background-repeat: no-repeat;
background-size: 100%;
background-position: center bottom;
padding-top: 120px;
padding-bottom: 120px;
}
img {
width: 185px;
}
.login_form {
text-align: center;
width: calc(100% - 40px);
margin: 0 auto;
padding-top: 50px;
.login_row {
padding-bottom: 15px;
h4 {
text-align: center;
color: $dark_prime;
font-weight: 600;
font-size: 28px;
}
input {
width: 100%;
height: 45px;
border: none;
border-radius: 24px;
text-align: center;
padding-left: 40px;
padding-right: 40px;
background-color: $secondary_color;
background-size: 18px;
background-repeat: no-repeat;
background-position: 25px;
&:focus {
outline: none;
}
}
.call {
background-image: url("../../assets/call_icon.png");
}
background-position: left 23px top 12px,
right 23px top 12px;
}
.login_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
background-image: url("../../assets/arrow_icon.png");
background-repeat: no-repeat;
background-size: 20px;
background-position: right 15px top 15px;
&:focus {
outline: none;
}
}
}
}
.social_bay {
width: 100%;
padding-bottom: 10px;
ul {
margin: 0px;
padding: 0px;
width: 100%;
text-align: center;
li {
display: inline-block;
border: 1px solid #EFEDF2;
width: 60px;
height: 45px;
border-radius: 28px;
margin: 10px;
background-position: center;
background-repeat: no-repeat;
}
.fb_icon {
background-image: url("../../assets/fb_icon.png");
background-size: 11px;
}
.google_icon {
background-image: url("../../assets/google_icon.png");
background-size: 20px;
}
}
}
p {
color: #988FA7;
text-align: center;
font-size: 14px;
line-height: 20px;
margin: 0px;
font-weight: 500;
padding-bottom: 15px;
strong {
color: #593799;
font-weight: 500;
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { ForgotPage } from './forgot.page';
describe('ForgotPage', () => {
let component: ForgotPage;
let fixture: ComponentFixture<ForgotPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ForgotPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(ForgotPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
@Component({
selector: "app-forgot",
templateUrl: "./forgot.page.html",
styleUrls: ["./forgot.page.scss"]
})
export class ForgotPage implements OnInit {
constructor(private router: Router) {}
ngOnInit() {}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { IonicModule } from '@ionic/angular';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { HomePage } from './home.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild([
{
path: '',
component: HomePage
}
])
],
declarations: [HomePage]
})
export class HomePageModule {}
<ion-content>
<div class="home_wrapper">
<ion-slides pager="false" [options]="profilesOptions" class="profileSlides">
<ion-slide>
<div>
<img src="../../assets/profile.png" />
<div class="overlay">
<div class="bottom_footer">
<ion-row>
<ion-col size="8" (click)="statusToggle()" class="textLeft">
<h5>Alieson Monroe<span>24</span></h5>
<p class="l1">Working at infopark</p>
<p class="l2">60 Miles Away</p>
</ion-col>
<ion-col size="4" class="textRight">
<div class="heart floatRight" [class.heart_filled]="isLiked" (click)="likeProfile()"></div>
<div class="clear"></div>
</ion-col>
</ion-row>
</div>
</div>
</div>
</ion-slide>
<ion-slide>
<img src="../../assets/profile.png" />
<div class="overlay">
<div class="bottom_footer">
<ion-row>
<ion-col size="8" (click)="statusToggle()" class="textLeft">
<h5>Alieson Monroe<span>24</span></h5>
<p class="l1">Working at infopark</p>
<p class="l2">60 Miles Away</p>
</ion-col>
<ion-col size="4" class="textRight">
<div class="heart floatRight" [class.heart_filled]="isLiked" (click)="likeProfile()">
</div>
<div class="clear"></div>
</ion-col>
</ion-row>
</div>
</div>
</ion-slide>
<ion-slide>
<img src="../../assets/profile.png" />
<div class="overlay">
<div class="bottom_footer">
<ion-row>
<ion-col size="8" (click)="statusToggle()" class="textLeft">
<h5>Alieson Monroe<span>24</span></h5>
<p class="l1">Working at infopark</p>
<p class="l2">60 Miles Away</p>
</ion-col>
<ion-col size="4" class="textRight">
<div class="heart floatRight" [class.heart_filled]="isLiked" (click)="likeProfile()">
</div>
<div class="clear"></div>
</ion-col>
</ion-row>
</div>
</div>
</ion-slide>
</ion-slides>
</div>
</ion-content>
<div class="status_wrapper" *ngIf="statusShow" [@slideInOut] (click)="contentToggle()">
<p>“ I am Looking for Young Mens who working at Infopark kochi ”</p>
</div>
<div class="profile_content relative" *ngIf="contentShow" [@slideInOut]>
<div class="close" (click)="contentToggle()">
&times;
</div>
<div class="profile_content_inner relative">
<img src="../../assets/id.png" class="id" />
<p>June 26th 2019</p>
</div>
<div class="profile_content_inner relative p0">
<img src="../../assets/profile1.png" />
<p>June 26th 2019</p>
</div>
</div>
\ No newline at end of file
@import "../../global.scss";
.home_wrapper {
width: 100%;
height: 100vh;
ion-slides {
height: 100vh;
ion-slide {
position: relative;
img {
width: 100%;
height: 100vh;
object-fit: cover;
object-position: center;
}
.overlay {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
-webkit-box-shadow: inset 0px -70px 53px 0px rgba(0, 0, 0, 0.75);
-moz-box-shadow: inset 0px -70px 53px 0px rgba(0, 0, 0, 0.75);
box-shadow: inset 0px -70px 53px 0px rgba(0, 0, 0, 0.75);
.bottom_footer {
position: fixed;
padding: 15px;
bottom: 70px;
left: 0px;
right: 0px;
width: 100%;
color: $white_color;
h5 {
color: $white_color;
margin: 0px;
padding: 0px;
font-size: 20px;
padding-bottom: 15px;
span {
font-size: 18px;
position: relative;
bottom: 5px;
left: 5px;
}
}
p {
color: $white_color;
margin: 0px;
padding: 0px;
font-size: 14px;
padding-bottom: 5px;
background-repeat: no-repeat;
padding-left: 25px;
font-weight: 300;
}
.heart {
width: 40px;
height: 40px;
background-image: url("../../assets/heart.png");
background-position: center;
background-size: contain;
background-repeat: no-repeat;
cursor: pointer;
}
.heart_filled {
background-image: url("../../assets/filled_heart.png") !important;
}
.l1 {
background-image: url("../../assets/luggage.png");
background-position: 1px 2px;
background-size: 13px;
}
.l2 {
background-image: url("../../assets/location.png");
background-size: 10px;
background-position: 2px 2px;
}
}
}
}
}
}
.status_wrapper {
width: 100%;
position: absolute;
background-color: $white_color;
bottom: 0px;
left: 0px;
right: 0px;
z-index: 9;
padding: 30px;
padding-bottom: 100px;
p {
color: $dark_prime;
margin: 0px;
padding: 0px;
font-weight: 600;
line-height: 25px;
}
}
.profile_content {
width: 100%;
position: absolute;
left: 0px;
right: 0px;
height: 100vh;
z-index: 99;
overflow: scroll;
.profile_content_inner {
padding: 30px;
background-image: url("../../assets/wizard_bg.png");
height: 100vh;
width: 100%;
text-align: center;
flex-direction: column;
box-sizing: border-box;
display: flex;
place-content: center;
align-items: center;
img {
width: 100%;
height: 100%;
object-position: center;
object-fit: cover;
}
.id {
width: 250px;
height: auto;
}
p {
position: absolute;
bottom: 70px;
left: 10px;
margin: 0px;
color: $white_color;
background-color: rgba(0, 0, 0, 0.4);
padding: 5px;
padding-left: 10px;
padding-right: 10px;
}
}
}
.close {
width: 50px;
height: 50px;
position: fixed;
top: 0px;
right: 0px;
font-size: 40px;
color: $white_color;
z-index: 99;
text-align: center;
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { HomePage } from './home.page';
describe('HomePage', () => {
let component: HomePage;
let fixture: ComponentFixture<HomePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ HomePage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(HomePage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component } from "@angular/core";
import { trigger, transition, animate, style } from "@angular/animations";
import { Router } from "@angular/router";
@Component({
selector: "app-home",
templateUrl: "home.page.html",
styleUrls: ["home.page.scss"],
animations: [
trigger("slideInOut", [
transition(":enter", [
style({ transform: "translateY(100%)" }),
animate("300ms ease-in", style({ transform: "translateY(0%)" }))
]),
transition(":leave", [
animate("300ms ease-out", style({ transform: "translateY(100%)" }))
])
])
]
})
export class HomePage {
statusShow = false;
contentShow = false;
showTab: boolean;
isLiked = false;
profilesOptions = {
loop: true,
direction: "vertical"
};
profileContents = {
loop: true
};
constructor(private router: Router) {
this.showTab = true;
}
statusToggle() {
this.statusShow = !this.statusShow;
}
contentToggle() {
this.statusShow = false;
this.contentShow = !this.contentShow;
}
likeProfile() {
this.isLiked = !this.isLiked;
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LandingPage } from './landing.page';
const routes: Routes = [
{
path: '',
component: LandingPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class LandingPageRoutingModule {}
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { FormsModule } from "@angular/forms";
import { IonicModule } from "@ionic/angular";
import { LandingPageRoutingModule } from "./landing-routing.module";
import { LandingPage } from "./landing.page";
import { FlexLayoutModule } from "@angular/flex-layout";
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
FlexLayoutModule,
LandingPageRoutingModule
],
declarations: [LandingPage]
})
export class LandingPageModule {}
<ion-content>
<div class="landing_wrapper">
<div class="landing_wizard_section">
<ion-slides pager="true" [options]="wizardOpts">
<ion-slide>
<div class="landing_wizard_inner_section">
<img src="../../assets/wizard_bg.png" />
<div class="landing_overlay" fxLayout="column" fxLayoutAlign="center center">
<img src="../../assets/wizard_one.png" />
<h3>Find Your Matches</h3>
<p>Find Your Matches and Poke Him/Her</p>
</div>
</div>
</ion-slide>
<ion-slide>
<div class="landing_wizard_inner_section">
<img src="../../assets/wizard_bg_one.png" />
<div class="landing_overlay" fxLayout="column" fxLayoutAlign="center center">
<img src="../../assets/wizard_two.png" />
<h3>Like & Chat</h3>
<p>Like and Get Liked then Chat</p>
</div>
</div>
</ion-slide>
<ion-slide>
<div class="landing_wizard_inner_section">
<img src="../../assets/wizard_bg.png" />
<div class="landing_overlay" fxLayout="column" fxLayoutAlign="center center">
<img src="../../assets/wizard_three.png" />
<h3>Ask For Date</h3>
<p>Finally Ask for Dating and Enjoy !</p>
</div>
</div>
</ion-slide>
</ion-slides>
</div>
<div class="landing_bottom_section">
<p>
<strong>Rapport</strong> is going to make your life<br /> more enjoyable !!
</p>
<button class="get_started_btn" (click)="goToPage('login')">
Get Started
</button>
</div>
</div>
</ion-content>
\ No newline at end of file
@import "../../global.scss";
.landing_wrapper {
width: 100%;
height: 100vh;
.landing_wizard_section {
width: 100%;
height: calc(100vh - 155px);
ion-slides {
height: 100%;
.landing_wizard_inner_section {
position: relative;
img {
width: 100% !important;
height: calc(100vh - 155px) !important;
}
.landing_overlay {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
img {
width: 185px !important;
height: auto !important;
}
h3 {
margin: 0px;
padding: 0px;
color: $white_color;
font-size: 20pt;
padding-top: 40px;
line-height: 21pt;
padding-bottom: 5px;
}
p {
margin: 0px;
padding: 0px;
color: $white_color;
font-size: 11pt;
font-weight: 200;
line-height: 21pt;
padding-bottom: 55px;
}
}
}
}
}
.landing_bottom_section {
width: 100%;
height: 150px;
padding: 30px;
p {
color: #988FA7;
text-align: center;
font-size: 14px;
line-height: 20px;
margin: 0px;
padding-bottom: 15px;
strong {
color: #593799;
font-weight: 400;
}
}
.get_started_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
&:focus {
outline: none;
}
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { LandingPage } from './landing.page';
describe('LandingPage', () => {
let component: LandingPage;
let fixture: ComponentFixture<LandingPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ LandingPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(LandingPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router, ActivatedRoute } from "@angular/router";
@Component({
selector: "app-landing",
templateUrl: "./landing.page.html",
styleUrls: ["./landing.page.scss"]
})
export class LandingPage implements OnInit {
constructor(private router: Router) {}
wizardOpts = {
lockSwipes: true
};
ngOnInit() {}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LikePage } from './like.page';
const routes: Routes = [
{
path: '',
component: LikePage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class LikePageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { LikePageRoutingModule } from './like-routing.module';
import { LikePage } from './like.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
LikePageRoutingModule
],
declarations: [LikePage]
})
export class LikePageModule {}
<ion-header>
<div class="nav_header">
<button class="nav_btn floatLeft"></button>
<div class="nav_header_title floatLeft">
Peoples Liked you
</div>
<div class="clear"></div>
</div>
</ion-header>
<ion-content>
<div class="like_wrapper">
<ion-list>
<ion-item>
<ion-label>
<div class="circle_pic floatLeft"></div>
<div class="detail_section floatLeft">
<h5>Sofia Ella <span>24</span></h5>
<p>May 23, 05:05 PM</p>
</div>
<div class="end_section floatRight">
<div class="like_div floatRight" [class.chat_div]="isLiked" (click)="liked(0)"></div>
<div class="clear"></div>
</div>
</ion-label>
</ion-item>
<ion-item>
<ion-label>
<div class="circle_pic floatLeft"></div>
<div class="detail_section floatLeft">
<h5>Sofia Ella <span>24</span></h5>
<p>May 23, 05:05 PM</p>
</div>
<div class="end_section floatRight">
<div class="like_div floatRight" [class.chat_div]="isLiked" (click)="liked(1)"></div>
<div class="clear"></div>
</div>
</ion-label>
</ion-item>
<ion-item>
<ion-label>
<div class="circle_pic floatLeft"></div>
<div class="detail_section floatLeft">
<h5>Sofia Ella <span>24</span></h5>
<p>May 23, 05:05 PM</p>
</div>
<div class="end_section floatRight">
<div class="like_div floatRight" [class.chat_div]="isLiked" (click)="liked(1)"></div>
<div class="clear"></div>
</div>
</ion-label>
</ion-item>
<ion-item>
<ion-label>
<div class="circle_pic floatLeft"></div>
<div class="detail_section floatLeft">
<h5>Sofia Ella <span>24</span></h5>
<p>May 23, 05:05 PM</p>
</div>
<div class="end_section floatRight">
<div class="like_div floatRight" [class.chat_div]="isLiked" (click)="liked(1)"></div>
<div class="clear"></div>
</div>
</ion-label>
</ion-item>
</ion-list>
</div>
</ion-content>
\ No newline at end of file
@import "../../global.scss";
.like_wrapper {
.circle_pic {
width:50px;
height: 50px;
border-radius: 50%;
background-color: $primary_color;
background-image: url("../../assets/id.png");
background-position: center;
background-size: 30px;
background-repeat: no-repeat;
img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
border-radius: 50%;
}
}
.detail_section {
width:calc(100% - 100px);
padding: 5px;
padding-left:20px;
h5 {
margin:0px;
padding:0px;
color:$dark_prime;
font-size: 16px;
span{
color:$primary_color;
font-size: 14px;
position: relative;
bottom: 6px;
}
}
p {
margin:0px;
padding:0px;
color:#988FA7;
}
}
.end_section{
width: 50px;
height: 50px;
padding: 8px;
.like_div{
width:35px;
height:35px;
background-image:url("../../assets/like1.png");
background-position: center;
background-size: 25px;
background-repeat: no-repeat;
}
.chat_div{
background-image:url("../../assets/chat1.png");
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { LikePage } from './like.page';
describe('LikePage', () => {
let component: LikePage;
let fixture: ComponentFixture<LikePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ LikePage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(LikePage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
@Component({
selector: "app-like",
templateUrl: "./like.page.html",
styleUrls: ["./like.page.scss"]
})
export class LikePage implements OnInit {
isLiked: boolean;
constructor(private router: Router) {}
ngOnInit() {}
liked() {
this.isLiked = !this.isLiked;
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { LoginPage } from './login.page';
const routes: Routes = [
{
path: '',
component: LoginPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class LoginPageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { LoginPageRoutingModule } from './login-routing.module';
import { LoginPage } from './login.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
LoginPageRoutingModule
],
declarations: [LoginPage]
})
export class LoginPageModule {}
<ion-content>
<div class="login_wrapper">
<img src="../../assets/title_logo.png">
<div class="login_form">
<div class="login_row">
<input class="user" type="text" placeholder="User name">
<div class="message error" [hidden]="noError">
Value Required
</div>
</div>
<div class="login_row">
<input class="pass" type="password" placeholder="Password">
<div class="message error" [hidden]="noError">
Value Required
</div>
</div>
<div class="login_row">
<button class="login_btn" (click)="goToPage('home')">Login</button>
</div>
</div>
<div class="social_bay">
<ul>
<li class="fb_icon">
</li>
<li class="google_icon">
</li>
</ul>
</div>
<p><strong (click)="goToPage('forgot')">Forgot Password?</strong></p>
<p>Don’t have an account ? <strong (click)="goToPage('signup')">Register Now</strong> </p>
</div>
</ion-content>
\ No newline at end of file
@import "../../global.scss";
.login_wrapper {
background-image: url("../../assets/top_section.png");
height: 100vh;
width: 100%;
background-position: top center;
background-repeat: no-repeat;
background-size: contain;
text-align: center;
padding-top: 100px;
img {
width: 100px;
}
.login_form {
text-align: center;
width: calc(100% - 40px);
padding-top: 40px;
margin: 0 auto;
.login_row {
padding-bottom: 15px;
input {
width: 100%;
height: 45px;
border: none;
border-radius: 24px;
text-align: center;
padding-left: 40px;
padding-right: 40px;
background-color: $secondary_color;
background-size: 18px;
background-repeat: no-repeat;
background-position: 25px;
&:focus {
outline: none;
}
}
.user {
background-image: url("../../assets/profile_icon.png");
}
.pass {
background-image: url("../../assets/pass_icon.png"), url("../../assets/eye_icon.png");
background-position: left 23px top 12px, right 23px top 12px;
}
.login_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
&:focus {
outline: none;
}
}
}
}
.social_bay {
width: 100%;
padding-bottom: 10px;
ul {
margin: 0px;
padding: 0px;
width: 100%;
text-align: center;
li {
display: inline-block;
border: 1px solid #EFEDF2;
width: 60px;
height: 45px;
border-radius: 28px;
margin: 10px;
background-position: center;
background-repeat: no-repeat;
}
.fb_icon {
background-image: url("../../assets/fb_icon.png");
background-size: 11px;
}
.google_icon {
background-image: url("../../assets/google_icon.png");
background-size: 20px;
}
}
}
p {
color: #988FA7;
text-align: center;
font-size: 14px;
line-height: 20px;
margin: 0px;
font-weight: 500;
padding-bottom: 15px;
strong {
color: #593799;
font-weight: 500;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { LoginPage } from './login.page';
describe('LoginPage', () => {
let component: LoginPage;
let fixture: ComponentFixture<LoginPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ LoginPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(LoginPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router, ActivatedRoute } from "@angular/router";
@Component({
selector: "app-login",
templateUrl: "./login.page.html",
styleUrls: ["./login.page.scss"]
})
export class LoginPage implements OnInit {
noError: boolean;
notShown: boolean;
constructor(private router: Router) {
this.noError = true;
}
ngOnInit() {
this.notShown = true;
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { MediaPage } from './media.page';
const routes: Routes = [
{
path: '',
component: MediaPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class MediaPageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { MediaPageRoutingModule } from './media-routing.module';
import { MediaPage } from './media.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
MediaPageRoutingModule
],
declarations: [MediaPage]
})
export class MediaPageModule {}
<ion-header>
<div class="nav_header">
<button class="nav_btn back_icon floatLeft" (click)="closeModal()"></button>
<div class="nav_header_title floatLeft">
<span>Media</span>
</div>
<button class="nav_btn close_icon floatRight" (click)="closeModal()"></button>
<div class="clear"></div>
</div>
</ion-header>
<ion-content>
<div class="media_content">
<div class="media_photo">
<img src="../../assets/profile1.png">
</div>
</div>
</ion-content>
<ion-footer>
<div class="bottom_section">
<div class="message_type_area">
<input class="" type="text" placeholder="Type here">
<div class="photo"></div>
<div class="clear"></div>
</div>
<div class="mesage_send"></div>
<div class="clear"></div>
</div>
</ion-footer>
\ No newline at end of file
@import "../../global.scss";
.media_content {
flex-direction: row;
box-sizing: border-box;
display: flex;
place-content: center;
align-items: center;
.media_photo {
img {
width: 100%;
height: auto;
}
}
}
.bottom_section {
padding: 15px;
.message_type_area {
width: calc(100% - 55px);
float: left;
background-color: #F4F6F9;
border-radius: 25px;
input {
height: 50px;
float: left;
width: calc(100% - 50px);
border: none;
padding-left: 20px;
padding-right: 20px;
background-color: transparent;
&:focus {
outline: none;
}
&::placeholder {
color: $dark_prime;
}
}
.photo {
width: 50px;
height: 50px;
float: left;
background-image: url("../../assets/photo.png");
background-position: center;
background-repeat: no-repeat;
background-size: 20px;
}
}
.mesage_send {
float: right;
width: 50px;
height: 50px;
margin-left: 5px;
background-image: url("../../assets/send.png");
background-position: center;
background-repeat: no-repeat;
background-size: 100%;
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { MediaPage } from './media.page';
describe('MediaPage', () => {
let component: MediaPage;
let fixture: ComponentFixture<MediaPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MediaPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(MediaPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { ModalController, NavParams } from "@ionic/angular";
@Component({
selector: "app-media",
templateUrl: "./media.page.html",
styleUrls: ["./media.page.scss"]
})
export class MediaPage implements OnInit {
constructor(private modalController: ModalController) {}
ngOnInit() {}
async closeModal() {
const onClosedData: string = "Wrapped Up!";
await this.modalController.dismiss(onClosedData);
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { OtpPage } from './otp.page';
const routes: Routes = [
{
path: '',
component: OtpPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class OtpPageRoutingModule {}
import { NgModule } from "@angular/core";
import { CommonModule } from "@angular/common";
import { FormsModule } from "@angular/forms";
import { IonicModule } from "@ionic/angular";
import { OtpPageRoutingModule } from "./otp-routing.module";
import { OtpPage } from "./otp.page";
@NgModule({
imports: [CommonModule, FormsModule, IonicModule, OtpPageRoutingModule],
declarations: [OtpPage]
})
export class OtpPageModule {}
<ion-content>
<div class="login_wrapper">
<div class="login_title">
<img src="../../assets/wizard_four.png">
</div>
<div class="login_form">
<div class="login_row">
<h4>OTP</h4>
<p>Type the OTP we have sent to your <br>Email address </p>
</div>
<div class="login_row">
<input class="" type="text" placeholder="Enter One time password">
</div>
<div class="login_row">
<button class="login_btn" (click)="passToggle()">Submit</button>
</div>
</div>
<br>
<p><strong>Resent OTP</strong> </p>
</div>
</ion-content>
<div class="setpass_wrapper" *ngIf="setpassShow" [@slideInOut]>
<div class="nav_header">
<button class="nav_btn back_icon floatLeft" (click)="passToggle()"></button>
<div class="nav_header_title floatLeft">
Set Password
</div>
<div class="clear"></div>
</div>
<div class="set_pass_form">
<div class="set_pass_row">
<p>Create Password</p>
<input class="" placeholder="Type here">
</div>
<div class="set_pass_row">
<p>Confirm Password</p>
<input class="" placeholder="Type here">
</div>
</div>
<div class="pass_footer_section">
<div class="login_row">
<button class="login_btn" (click)="goToPage('login')">Set Password</button>
</div>
</div>
</div>
\ No newline at end of file
@import "../../global.scss";
@import "../app.component.scss";
.login_wrapper {
height: 100vh;
width: 100%;
text-align: center;
.login_title {
width: 100%;
background-image: url("../../assets/wizard_bg.png");
background-repeat: no-repeat;
background-size: 100%;
background-position: center bottom;
padding-top: 40px;
padding-bottom: 75px;
}
img {
width: 185px;
}
.login_form {
text-align: center;
width: calc(100% - 40px);
margin: 0 auto;
.login_row {
padding-bottom: 15px;
h4 {
text-align: center;
color: $dark_prime;
font-weight: 600;
font-size: 28px;
}
input {
width: 100%;
height: 45px;
border: none;
border-radius: 24px;
text-align: center;
padding-left: 40px;
padding-right: 40px;
background-color: $secondary_color;
background-size: 18px;
background-repeat: no-repeat;
background-position: 25px;
&:focus {
outline: none;
}
}
.mail {
background-image: url("../../assets/mail_icon.png");
}
background-position: left 23px top 12px,
right 23px top 12px;
}
.login_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
background-image: url("../../assets/arrow_icon.png");
background-repeat: no-repeat;
background-size: 20px;
background-position: right 15px top 15px;
&:focus {
outline: none;
}
}
}
p {
color: #988fa7;
text-align: center;
font-size: 14px;
line-height: 20px;
margin: 0px;
font-weight: 500;
padding-bottom: 15px;
strong {
color: #593799;
font-weight: 500;
}
}
}
.social_bay {
width: 100%;
padding-bottom: 10px;
ul {
margin: 0px;
padding: 0px;
width: 100%;
text-align: center;
li {
display: inline-block;
border: 1px solid #efedf2;
width: 60px;
height: 45px;
border-radius: 28px;
margin: 10px;
background-position: center;
background-repeat: no-repeat;
}
.fb_icon {
background-image: url("../../assets/fb_icon.png");
background-size: 11px;
}
.google_icon {
background-image: url("../../assets/google_icon.png");
background-size: 20px;
}
}
}
.setpass_wrapper {
width: 100%;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
background-color: $white_color;
.set_pass_form {
padding: 15px;
.set_pass_row {
padding-bottom: 20px;
p {
color: #988FA7;
text-align: left;
padding-bottom: 10px;
margin: 0px;
}
input {
width: 100%;
height: 45px;
border: none;
padding-left: 0px;
background-color: transparent;
&::placeholder {
color: #E4DCF3;
}
}
}
}
.pass_footer_section {
padding: 20px;
position: fixed;
bottom: 0px;
left: 0px;
right: 0px;
.login_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
background-image: url("../../assets/arrow_icon.png");
background-repeat: no-repeat;
background-size: 20px;
background-position: right 15px top 15px;
&:focus {
outline: none;
}
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { OtpPage } from './otp.page';
describe('OtpPage', () => {
let component: OtpPage;
let fixture: ComponentFixture<OtpPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ OtpPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(OtpPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { trigger, transition, animate, style } from "@angular/animations";
import { Router } from "@angular/router";
@Component({
selector: "app-otp",
templateUrl: "./otp.page.html",
styleUrls: ["./otp.page.scss"],
animations: [
trigger("slideInOut", [
transition(":enter", [
style({ transform: "translateY(100%)" }),
animate("300ms ease-in", style({ transform: "translateY(0%)" }))
]),
transition(":leave", [
animate("300ms ease-out", style({ transform: "translateY(100%)" }))
])
])
]
})
export class OtpPage implements OnInit {
setpassShow = false;
constructor(private router: Router) {}
ngOnInit() {}
passToggle() {
this.setpassShow = !this.setpassShow;
}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { PhonecodePage } from './phonecode.page';
const routes: Routes = [
{
path: '',
component: PhonecodePage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class PhonecodePageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { PhonecodePageRoutingModule } from './phonecode-routing.module';
import { PhonecodePage } from './phonecode.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
PhonecodePageRoutingModule
],
declarations: [PhonecodePage]
})
export class PhonecodePageModule {}
<ion-header>
<div class="nav_header">
<button class="nav_btn back_icon floatLeft"></button>
<div class="nav_header_title floatLeft">
<span>Search Country Code</span>
</div>
<button class="nav_btn floatRight"></button>
<div class="clear"></div>
</div>
</ion-header>
<ion-content>
<div class="phone_code_wrapper">
<div class="search_box">
<input class="" type="text" placeholder="">
<button class="search_btn">Search</button>
<div class="clear"></div>
</div>
<ul>
<li>
<span class="floatLeft">
<img src="../../assets/ind.png">
</span><span class="floatLeft"><strong>+91</strong>6589457126</span>
<div class="clear"></div>
</li>
<li>
<span class="floatLeft">
<img src="../../assets/sa.png">
</span><span class="floatLeft"><strong>+1</strong>6589457126</span>
<div class="clear"></div>
</li>
</ul>
</div>
</ion-content>
\ No newline at end of file
@import "../../global.scss";
.phone_code_wrapper {
width: 100%;
padding: 10px;
.search_box {
width: 100%;
input {
width: calc(100% - 85px);
float: left;
background-color: $secondary_color;
border: none;
height: 30px;
padding-left: 15px;
padding-right: 15px;
border-radius: 20px;
&:focus {
outline: none;
}
}
.search_btn {
width: 80px;
float: right;
background: transparent;
color: $primary_color;
padding: 6px;
font-size: 16px;
font-weight: 600;
}
}
ul {
margin: 0px;
padding: 0px;
padding-top: 20px;
padding-bottom: 20px;
li {
list-style: none;
padding-bottom: 15px;
span {
img {
height: 20px;
width: 35px;
margin-right: 10px;
}
color: #3C3741;
strong {
margin-right: 10px;
}
}
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { PhonecodePage } from './phonecode.page';
describe('PhonecodePage', () => {
let component: PhonecodePage;
let fixture: ComponentFixture<PhonecodePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ PhonecodePage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(PhonecodePage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
@Component({
selector: "app-phonecode",
templateUrl: "./phonecode.page.html",
styleUrls: ["./phonecode.page.scss"]
})
export class PhonecodePage implements OnInit {
constructor(private router: Router) {}
ngOnInit() {}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ProfilePage } from './profile.page';
const routes: Routes = [
{
path: '',
component: ProfilePage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ProfilePageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ProfilePageRoutingModule } from './profile-routing.module';
import { ProfilePage } from './profile.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
ProfilePageRoutingModule
],
declarations: [ProfilePage]
})
export class ProfilePageModule {}
<ion-header>
<div class="nav_header">
<button class="nav_btn back_icon floatLeft" (click)="passToggle()"></button>
<div class="nav_header_title floatLeft">
Profile Settings
</div>
<div class="clear"></div>
</div>
</ion-header>
<ion-content>
<div class="profile_wrapper">
<div class="profile_photo_circle" fxLayout="column" fxLayoutAlign="center center">
<img src="../../assets/upload_icon.png">
<p>Upload Photo</p>
</div>
<div class="profile_form">
<div class="profile_row">
<p>Full Name</p>
<div class="relative">
<input class="" type="text" placeholder="Enter your name">
<div class="edit_pen"></div>
</div>
</div>
<div class="profile_row">
<p>Gender</p>
<div class="relative">
<select>
<option>Male</option>
<option>Female</option>
</select>
</div>
</div>
<div class="profile_row">
<p>Email Address</p>
<p class="optional">Not visible to anyone</p>
<div class="relative">
<input class="" type="mail" placeholder="Enter your mail ID">
<div class="edit_pen"></div>
</div>
</div>
<div class="profile_row">
<p>Phone Number</p>
<p class="optional">Not visible to anyone</p>
<div class="relative">
<ion-row>
<ion-col size="4">
<select>
<option>+91</option>
</select>
</ion-col>
<ion-col size="8">
<input class="" type="number" placeholder="88 8888 8888">
<div class="edit_pen"></div>
</ion-col>
</ion-row>
</div>
</div>
<div class="profile_row">
<p>Date of Birth</p>
<div class="relative">
<ion-row>
<ion-col size="4">
<select>
<option>DD</option>
</select>
</ion-col>
<ion-col size="4">
<select>
<option>MM</option>
</select>
</ion-col>
<ion-col size="4">
<select>
<option>YYYY</option>
</select>
</ion-col>
</ion-row>
</div>
</div>
<div class="profile_row">
<p>What are you doing ?</p>
<ul>
<li>Working</li>
<li>Studying</li>
</ul>
</div>
<div class="profile_row">
<p>Where ?</p>
<div class="relative">
<input class="" type="text" placeholder="Where">
<div class="edit_pen"></div>
</div>
</div>
<div class="profile_row">
<p>Bio</p>
<div class="relative">
<input class="" type="text" placeholder="Something About You">
<div class="edit_pen"></div>
</div>
</div>
<div class="profile_row">
<button class="login_btn">Submit & Start</button>
</div>
</div>
</div>
</ion-content>
\ No newline at end of file
@import "../../global.scss";
.profile_wrapper {
width: 100%;
padding: 20px;
.profile_photo_circle {
width: 170px;
height: 170px;
border-radius: 50%;
margin: 0 auto;
background-image: url("../../assets/smiley_bg.png");
background-repeat: no-repeat;
background-size: cover;
text-align: center;
padding: 45px;
padding-left: 0px;
padding-right: 0px;
img {
width: 35px;
}
p {
color: $white_color;
text-align: center;
font-size: 14px;
}
}
.profile_form {
padding: 10px;
.profile_row {
padding-bottom: 20px;
position: relative;
ul {
padding: 0px;
li {
list-style: none;
display: inline-block;
background-color: $secondary_color;
color: $dark_prime;
padding: 3px;
padding-left: 15px;
padding-right: 15px;
margin: 2px;
border-radius: 20px;
&:focus {
background-color: $primary_color;
color: $white_color;
}
&:hover {
background-color: $primary_color;
color: $white_color;
}
}
}
p {
color: #988FA7;
text-align: left;
padding-bottom: 5px;
margin: 0px;
font-size: 12px;
}
.optional {
color: $primary_color;
}
input {
width: 100%;
height: 45px;
border: none;
padding-left: 0px;
background-color: transparent;
padding-right: 45px;
color: $dark_prime;
font-weight: 600;
&::placeholder {
color: $dark_prime;
font-weight: 400;
}
&:focus {
outline: none;
}
}
select {
width: 100%;
height: 45px;
border: none;
padding-left: 20px;
background-color: $secondary_color;
padding-right: 45px;
color: $dark_prime;
font-weight: 600;
border-radius: 20px;
-webkit-appearance: none;
background-image: url("../../assets/drop_down_icon.png");
background-position: right 15px top 18px;
background-repeat: no-repeat;
background-size: 15px;
&:focus {
outline: none;
}
}
.edit_pen {
height: 45px;
width: 45px;
background-image: url("../../assets/edit_one_icon.png");
background-position: center;
background-repeat: no-repeat;
background-size: 20px;
position: absolute;
right: 0px;
bottom: 0px;
}
.login_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
background-image: url("../../assets/arrow_icon.png");
background-repeat: no-repeat;
background-size: 20px;
background-position: right 15px top 15px;
&:focus {
outline: none;
}
}
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { ProfilePage } from './profile.page';
describe('ProfilePage', () => {
let component: ProfilePage;
let fixture: ComponentFixture<ProfilePage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ProfilePage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(ProfilePage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
@Component({
selector: "app-profile",
templateUrl: "./profile.page.html",
styleUrls: ["./profile.page.scss"]
})
export class ProfilePage implements OnInit {
showTab: boolean;
constructor(private router: Router) {
this.showTab = false;
}
ngOnInit() {}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ProfilesettingsPage } from './profilesettings.page';
const routes: Routes = [
{
path: '',
component: ProfilesettingsPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class ProfilesettingsPageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { ProfilesettingsPageRoutingModule } from './profilesettings-routing.module';
import { ProfilesettingsPage } from './profilesettings.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
ProfilesettingsPageRoutingModule
],
declarations: [ProfilesettingsPage]
})
export class ProfilesettingsPageModule {}
@import "../../global.scss";
.profile_wrapper {
width: 100%;
padding-top: 20px;
padding-bottom: 100px;
.profile_gallery_section {
.swiper-slide {
.profile_photo_circle {
img {
-webkit-filter: opacity(.4);
filter: opacity(.4);
}
}
}
.swiper-slide-active {
.profile_photo_circle {
img {
-webkit-filter: opacity(1);
filter: opacity(1);
}
}
}
}
.profile_photo_circle {
width: 250px;
height: 250px;
border-radius: 50%;
margin: 0 auto;
background-repeat: no-repeat;
background-size: cover;
text-align: center;
padding-left: 0px;
padding-right: 0px;
img {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
object-position: center;
}
}
.profile_image_edit {
width: 100%;
text-align: center;
padding-top: 20px;
padding-bottom: 20px;
.btns {
width: 35px;
height: 35px;
background-color: #5A5862;
border-radius: 50%;
display: inline-block;
margin: 10px;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
cursor: pointer;
}
.delete_btn {
background-image: url("../../assets/delete.png");
}
.add_btn {
background-image: url("../../assets/add.png");
}
}
.main_half_tab {
width: 85%;
margin: 0 auto;
margin-top: 20px;
margin-bottom: 40px;
background-color: $secondary_color;
border-radius: 20px;
ul {
margin: 0px;
padding: 0px;
background-position: center;
li {
width: 50%;
display: inline-block;
list-style: none;
text-align: center;
padding: 12px;
color: $dark_prime;
font-weight: 600;
&:nth-child(odd) {
border-top-left-radius: 20px;
border-bottom-left-radius: 20px;
}
&:nth-child(even) {
border-top-right-radius: 20px;
border-bottom-right-radius: 20px;
}
}
.active {
background-color: #593799;
color: #fff;
}
}
}
.profile_form {
.profile_form_inner_section {
background-color: $secondary_color;
padding: 20px;
ion-row {
padding-bottom: 10px;
}
p {
margin: 0px;
padding: 0px;
color: #988FA7;
font-size: 12px;
strong {
color: $dark_prime;
font-size: 14px;
}
}
select {
background-color: $white_color;
border-radius: 20px;
height: 25px;
width: 100px;
background-image: url("../../assets/drop_down_icon.png");
-webkit-appearance: none;
background-repeat: no-repeat;
background-size: 10px;
border: none;
background-position: right 10px top 10px;
padding-left: 15px;
font-size: 14px;
font-weight: 600;
&:focus {
outline: none;
}
}
.login_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
background-repeat: no-repeat;
background-size: 20px;
background-position: right 15px top 15px;
&:focus {
outline: none;
}
}
}
.profile_form_inner {
padding: 20px;
ion-row {
padding-bottom: 10px;
}
p {
margin: 0px;
padding: 0px;
color: #988FA7;
font-size: 12px;
}
.custom_toggle {
text-align: right;
ion-toggle {
padding: 3px;
}
}
h6 {
margin: 0px;
padding: 0px;
color: $primary_color;
font-size: 12px;
line-height: 20px;
}
h5 {
margin: 0px;
padding: 0px;
color: $primary_color;
font-size: 14px;
line-height: 20px;
font-weight: 600;
padding-top: 10px;
padding-bottom: 10px;
strong {
color: #36323C;
font-weight: 600;
}
}
}
.profile_row {
padding-bottom: 20px;
position: relative;
ul {
padding: 0px;
li {
list-style: none;
display: inline-block;
background-color: $secondary_color;
color: $dark_prime;
padding: 3px;
padding-left: 15px;
padding-right: 15px;
margin: 2px;
border-radius: 20px;
&:focus {
background-color: $primary_color;
color: $white_color;
}
&:hover {
background-color: $primary_color;
color: $white_color;
}
}
}
p {
color: #988FA7;
text-align: left;
padding-bottom: 5px;
margin: 0px;
font-size: 12px;
}
.optional {
color: $primary_color;
}
input {
width: 100%;
height: 45px;
border: none;
padding-left: 0px;
background-color: transparent;
padding-right: 45px;
color: $dark_prime;
font-weight: 600;
&::placeholder {
color: $dark_prime;
font-weight: 400;
}
&:focus {
outline: none;
}
}
select {
width: 100%;
height: 45px;
border: none;
padding-left: 20px;
background-color: $secondary_color;
padding-right: 45px;
color: $dark_prime;
font-weight: 600;
border-radius: 20px;
-webkit-appearance: none;
background-image: url("../../assets/drop_down_icon.png");
background-position: right 15px top 18px;
background-repeat: no-repeat;
background-size: 15px;
&:focus {
outline: none;
}
}
.edit_pen {
height: 45px;
width: 45px;
background-image: url("../../assets/edit_one_icon.png");
background-position: center;
background-repeat: no-repeat;
background-size: 20px;
position: absolute;
right: 0px;
bottom: 0px;
}
.login_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
background-repeat: no-repeat;
background-size: 20px;
background-position: right 15px top 15px;
&:focus {
outline: none;
}
}
}
}
.bottom_section {
width: 100%;
padding: 20px;
.logoff {
background-image: url("../../assets/logout.png");
background-position: 0px;
background-repeat: no-repeat;
color: $primary_color;
background-size: 16px;
padding-left: 25px;
font-size: 14px;
}
p {
margin: 0px;
text-align: right;
color: #988FA7;
font-size: 14px;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { ProfilesettingsPage } from './profilesettings.page';
describe('ProfilesettingsPage', () => {
let component: ProfilesettingsPage;
let fixture: ComponentFixture<ProfilesettingsPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ProfilesettingsPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(ProfilesettingsPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
@Component({
selector: "app-profilesettings",
templateUrl: "./profilesettings.page.html",
styleUrls: ["./profilesettings.page.scss"]
})
export class ProfilesettingsPage implements OnInit {
tab: any;
constructor(private router: Router) {
this.tab = "active";
}
ngOnInit() {}
ionViewDidLoad() {}
tab_swap(type) {
this.tab = type;
}
pictureOpts = {
slidesPerView: 1.5,
spaceBetween: 10
};
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { SignupPage } from './signup.page';
const routes: Routes = [
{
path: '',
component: SignupPage
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class SignupPageRoutingModule {}
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { SignupPageRoutingModule } from './signup-routing.module';
import { SignupPage } from './signup.page';
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
SignupPageRoutingModule
],
declarations: [SignupPage]
})
export class SignupPageModule {}
<ion-content>
<div class="login_wrapper">
<div class="login_title">
<img src="../../assets/title_logo_white.png">
</div>
<div class="login_form">
<div class="login_row">
<h4>Register</h4>
</div>
<div class="login_row">
<input class="mail" type="text" placeholder="Email Address">
<div class="message error" [hidden]="noError">
Value Required
</div>
</div>
<div class="login_row">
<button class="login_btn" (click)="goToPage('otp')">Send OTP</button>
</div>
</div>
<p>Or register with </p>
<div class="social_bay">
<ul>
<li class="fb_icon">
</li>
<li class="google_icon">
</li>
</ul>
</div>
<p>Already have an account ? <strong (click)="goToPage('login')">Login</strong> </p>
</div>
</ion-content>
\ No newline at end of file
@import "../../global.scss";
.login_wrapper {
height: 100vh;
width: 100%;
text-align: center;
.login_title {
width: 100%;
background-image: url("../../assets/wizard_bg.png");
background-repeat: no-repeat;
background-size: 100%;
background-position: center bottom;
padding-top: 40px;
padding-bottom: 75px;
}
img {
width: 100px;
}
.login_form {
text-align: center;
width: calc(100% - 40px);
margin: 0 auto;
.login_row {
padding-bottom: 15px;
h4 {
text-align: center;
color: $dark_prime;
font-weight: 600;
font-size: 28px;
}
input {
width: 100%;
height: 45px;
border: none;
border-radius: 24px;
text-align: center;
padding-left: 40px;
padding-right: 40px;
background-color: $secondary_color;
background-size: 18px;
background-repeat: no-repeat;
background-position: 25px;
&:focus {
outline: none;
}
}
.mail {
background-image: url("../../assets/mail_icon.png");
}
background-position: left 23px top 12px,
right 23px top 12px;
}
.login_btn {
background-color: $primary_color;
height: 45px;
color: $white_color;
border-radius: 24px;
width: 100%;
font-size: 18px;
background-image: url("../../assets/arrow_icon.png");
background-repeat: no-repeat;
background-size: 20px;
background-position: right 15px top 15px;
&:focus {
outline: none;
}
}
}
}
.social_bay {
width: 100%;
padding-bottom: 10px;
ul {
margin: 0px;
padding: 0px;
width: 100%;
text-align: center;
li {
display: inline-block;
border: 1px solid #EFEDF2;
width: 60px;
height: 45px;
border-radius: 28px;
margin: 10px;
background-position: center;
background-repeat: no-repeat;
}
.fb_icon {
background-image: url("../../assets/fb_icon.png");
background-size: 11px;
}
.google_icon {
background-image: url("../../assets/google_icon.png");
background-size: 20px;
}
}
}
p {
color: #988FA7;
text-align: center;
font-size: 14px;
line-height: 20px;
margin: 0px;
font-weight: 500;
padding-bottom: 15px;
strong {
color: #593799;
font-weight: 500;
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { SignupPage } from './signup.page';
describe('SignupPage', () => {
let component: SignupPage;
let fixture: ComponentFixture<SignupPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ SignupPage ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(SignupPage);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from "@angular/core";
import { Router } from "@angular/router";
@Component({
selector: "app-signup",
templateUrl: "./signup.page.html",
styleUrls: ["./signup.page.scss"]
})
export class SignupPage implements OnInit {
noError: boolean;
constructor(private router: Router) {
this.noError = true;
}
ngOnInit() {}
goToPage(path, data = null) {
this.router.navigateByUrl(path, { queryParams: data });
}
}
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment