Commit cab4248a by Arjun

initial push

parent fad6686f
// 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"
]
}
}
These are Cordova resources. You can replace icon.png and splash.png and run
`ionic cordova resources` to generate custom icons and splash screens for your
app. See `ionic cordova resources --help` for details.
Cordova reference documentation:
- Icons: https://cordova.apache.org/docs/en/latest/config_ref/images.html
- Splash Screens: https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-splashscreen/
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
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 {}
<ion-header>
<div class="nav_header">
<button class="nav_btn floatLeft"></button>
<div class="nav_header_title floatLeft">
<span><strong>Hi</strong> Shamjith!</span>
</div>
<button class="nav_btn floatRight"></button>
<div class="clear"></div>
</div>
</ion-header>
<ion-content>
<div class="profile_wrapper">
<div class="profile_gallery_section">
<ion-slides pager="false" [options]="pictureOpts">
<ion-slide>
<div class="profile_photo_circle" fxLayout="column" fxLayoutAlign="center center">
<img src="../../assets/profile.png">
</div>
</ion-slide>
<ion-slide>
<div class="profile_photo_circle" fxLayout="column" fxLayoutAlign="center center">
<img src="../../assets/profile1.png">
</div>
</ion-slide>
<ion-slide>
<div class="profile_photo_circle" fxLayout="column" fxLayoutAlign="center center">
<img src="../../assets/profile.png">
</div>
</ion-slide>
</ion-slides>
</div>
<div class="profile_image_edit">
<div class="btns delete_btn"></div>
<div class="btns add_btn"></div>
</div>
<div class="main_half_tab">
<ul>
<li [class.active]="tab=='active'" (click)="tab_swap('active')">Personal</li>
<li [class.active]="tab=='inactive'" (click)="tab_swap('inactive')">General</li>
</ul>
</div>
<div class="profile_form" [hidden]="tab=='inactive'">
<div class="profile_form_inner">
<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>
<div class="profile_form" [hidden]="tab=='active'">
<div class="profile_form_inner">
<ion-row>
<ion-col size="8">
<p>Make Visible to others</p>
</ion-col>
<ion-col size="4">
<div class="custom_toggle">
<ion-toggle color="primary"></ion-toggle>
</div>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="12">
<h6>
If turned it OFF peoples can’t see you and you can continue the chating with poked persons.
</h6>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="12">
<h5>
Notifications
</h5>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="8">
<p>Messages</p>
</ion-col>
<ion-col size="4">
<div class="custom_toggle">
<ion-toggle color="primary"></ion-toggle>
</div>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="8">
<p>Pokes</p>
</ion-col>
<ion-col size="4">
<div class="custom_toggle">
<ion-toggle color="primary"></ion-toggle>
</div>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="8">
<p>Email Notifications</p>
</ion-col>
<ion-col size="4">
<div class="custom_toggle">
<ion-toggle color="primary"></ion-toggle>
</div>
</ion-col>
</ion-row>
</div>
<div class="profile_form_inner_section">
<ion-row>
<ion-col size="8">
<p>Looking for</p>
</ion-col>
<ion-col size="4" class="textRight">
<select>
<option>Women</option>
<option>Men</option>
</select>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="8">
<p>Age Range</p>
</ion-col>
<ion-col size="4" class="textRight">
<p class="textRight"><strong>18 - 28</strong></p>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="12">
<ion-range dualKnobs="true" min="21" max="72" step="3"></ion-range>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="8">
<p>Maximum Distance</p>
</ion-col>
<ion-col size="4" class="textRight">
<p class="textRight"><strong>100</strong>Miles</p>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="12">
<ion-range dualKnobs="true" min="21" max="72" step="3"></ion-range>
</ion-col>
</ion-row>
<ion-row>
<ion-col>
<button class="login_btn">Save</button>
</ion-col>
</ion-row>
</div>
<div class="profile_form_inner">
<ion-row>
<ion-col size="12">
<h5>
Change Password
</h5>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="12">
<h5>
<strong>Help & Suppport</strong>
</h5>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="12">
<h5>
<strong>Privacy Policy</strong>
</h5>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="12">
<h5>
<strong>Delete Account</strong>
</h5>
</ion-col>
</ion-row>
</div>
</div>
<div class="bottom_section">
<ion-row>
<ion-col>
<div class="logoff">
Logout
</div>
</ion-col>
<ion-col>
<p>Verion 2.4</p>
</ion-col>
</ion-row>
</div>
</div>
</ion-content>
\ No newline at end of file
@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 });
}
}
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { IonicModule } from '@ionic/angular';
import { TabsectionComponent } from './tabsection.component';
describe('TabsectionComponent', () => {
let component: TabsectionComponent;
let fixture: ComponentFixture<TabsectionComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ TabsectionComponent ],
imports: [IonicModule.forRoot()]
}).compileComponents();
fixture = TestBed.createComponent(TabsectionComponent);
component = fixture.componentInstance;
fixture.detectChanges();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-tabsection',
templateUrl: './tabsection.component.html',
styleUrls: ['./tabsection.component.scss'],
})
export class TabsectionComponent implements OnInit {
constructor() { }
ngOnInit() {}
}
<svg width="350" height="140" xmlns="http://www.w3.org/2000/svg" style="background:#f6f7f9"><g fill="none" fill-rule="evenodd"><path fill="#F04141" style="mix-blend-mode:multiply" d="M61.905-34.23l96.194 54.51-66.982 54.512L22 34.887z"/><circle fill="#10DC60" style="mix-blend-mode:multiply" cx="155.5" cy="135.5" r="57.5"/><path fill="#3880FF" style="mix-blend-mode:multiply" d="M208.538 9.513l84.417 15.392L223.93 93.93z"/><path fill="#FFCE00" style="mix-blend-mode:multiply" d="M268.625 106.557l46.332-26.75 46.332 26.75v53.5l-46.332 26.75-46.332-26.75z"/><circle fill="#7044FF" style="mix-blend-mode:multiply" cx="299.5" cy="9.5" r="38.5"/><rect fill="#11D3EA" style="mix-blend-mode:multiply" transform="rotate(-60 148.47 37.886)" x="143.372" y="-7.056" width="10.196" height="89.884" rx="5.098"/><path d="M-25.389 74.253l84.86 8.107c5.498.525 9.53 5.407 9.004 10.905a10 10 0 0 1-.057.477l-12.36 85.671a10.002 10.002 0 0 1-11.634 8.42l-86.351-15.226c-5.44-.959-9.07-6.145-8.112-11.584l13.851-78.551a10 10 0 0 1 10.799-8.219z" fill="#7044FF" style="mix-blend-mode:multiply"/><circle fill="#0CD1E8" style="mix-blend-mode:multiply" cx="273.5" cy="106.5" r="20.5"/></g></svg>
export const environment = {
production: true
};
// This file can be replaced during build by using the `fileReplacements` array.
// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
// The list of file replacements can be found in `angular.json`.
export const environment = {
production: false
};
/*
* For easier debugging in development mode, you can import the following file
* to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
*
* This import should be commented out in production mode because it will have a negative impact
* on performance if an error is thrown.
*/
// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
/*
* App Global CSS
* ----------------------------------------------------------------------------
* Put style rules here that you want to apply globally. These styles are for
* the entire app and not just one component. Additionally, this file can be
* used as an entry point to import other CSS/Sass files to be included in the
* output CSS.
* For more information on global stylesheets, visit the documentation:
* https://ionicframework.com/docs/layout/global-stylesheets
*/
/* Core CSS required for Ionic components to work properly */
@import "~@ionic/angular/css/core.css";
/* Basic CSS for apps built with Ionic */
@import "~@ionic/angular/css/normalize.css";
@import "~@ionic/angular/css/structure.css";
@import "~@ionic/angular/css/typography.css";
@import "~@ionic/angular/css/display.css";
/* Optional CSS utils that can be commented out */
@import "~@ionic/angular/css/padding.css";
@import "~@ionic/angular/css/float-elements.css";
@import "~@ionic/angular/css/text-alignment.css";
@import "~@ionic/angular/css/text-transformation.css";
@import "~@ionic/angular/css/flex-utils.css";
/*
Site Name: Raport
URI: http:
Description: This is the theme css for Raport
Version: 0.1
Author: Amal-Techware Solution
Author URI:
Tags:
---------------------------
THEME STYLES
---------------------------
TABLE OF CONTENTS
---------------------------
01. FONTS-N-SIZES
02. FONTS-COLOR
03. THEMES-N-BACKGROUNDS
04. SPACING-N-POSITIONS
05. ALIGMENTS
06. ALERTS-N-MESSAGES
07. BODY-STRUCTURE
08. OVERWRITTEN
*/
/*-------------------------------
01. FONTS-N-SIZES
--------------------------------*/
@import url("https://fonts.googleapis.com/css?family=Raleway:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&display=swap");
* {
font-family: "Raleway", sans-serif;
}
*::-webkit-scrollbar {
display: none;
}
.no-scroll .scroll-content {
overflow: hidden;
}
a {
text-decoration: none !important;
}
/*-------------------------------
02. FONTS-SETTINGS
--------------------------------*/
.text_color_white {
color: hsl(0, 0%, 100%) !important;
}
.text_color_theme {
color: #ff585e !important;
}
.font_size_xs {
font-size: 12px !important;
}
.font_size_sm {
font-size: 14px !important;
}
.font_size_md {
font-size: 16px !important;
}
.font_size_lg {
font-size: 18px !important;
}
.font_size_xl {
font-size: 20px !important;
}
.font_size_vl {
font-size: 35px !important;
}
.font_weight300 {
font-weight: 300 !important;
}
.font_weight400 {
font-weight: 400 !important;
}
.font_weight500 {
font-weight: 500 !important;
}
.font_weight600 {
font-weight: 600 !important;
}
/*-------------------------------
03. THEMES-N-BACKGROUNDS
--------------------------------*/
$white_color: #fff;
$black_color: #000;
$primary_color: #593799;
$secondary_color: #efeef2;
$dark_prime: #36323c;
/*-------------------------------
04. SPACING-N-POSITIONS
--------------------------------*/
.width25 {
width: 25% !important;
}
.width50 {
width: 50% !important;
}
.width75 {
width: 75% !important;
}
.widthFull {
width: 100% !important;
}
.widthAuto {
width: auto !important;
}
.height25 {
height: 25% !important;
}
.height50 {
height: 50% !important;
}
.height75 {
width: 75% !important;
}
.heightFull {
height: 100% !important;
}
.heightAuto {
height: auto !important;
}
.p0 {
padding: 0px !important;
}
.pl0 {
padding-left: 0px !important;
}
.pr0 {
padding-right: 0px !important;
}
.pt0 {
padding-top: 0px !important;
}
.pb0 {
padding-bottom: 0px !important;
}
.p10 {
padding: 10px !important;
}
.pl10 {
padding-left: 10px !important;
}
.pr10 {
padding-right: 10px !important;
}
.m0 {
margin: 0px !important;
}
.ml0 {
margin-left: 0px !important;
}
.mr0 {
margin-right: 0px !important;
}
.mt0 {
margin-top: 0px !important;
}
.mb0 {
margin-bottom: 0px !important;
}
.mAuto {
margin: 0 auto !important;
}
.clear {
clear: both !important;
}
.absolute {
position: absolute !important;
}
.relative {
position: relative !important;
}
.fixed {
position: fixed !important;
}
/*-------------------------------
05. ALIGMENTS
--------------------------------*/
.floatLeft {
float: left !important;
}
.floatRight {
float: right !important;
}
.textLeft {
text-align: left !important;
}
.textRight {
text-align: right !important;
}
.textCenter {
text-align: center !important;
}
/*-------------------------------
06. ALERTS-N-MESSAGES
--------------------------------*/
.message {
padding: 5px;
text-align: left;
color: #fff;
font-size: 12px;
border-radius: 20px;
border-top-left-radius: 0px;
margin-top: 10px;
padding-left: 30px;
-webkit-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
}
.error {
background-color: #ff585e;
}
/*-------------------------------
07. BODY-STRUCTURE
--------------------------------*/
body {
padding-top: constant(safe-area-inset-top); //for iOS 11.2
padding-top: env(safe-area-inset-top); //for iOS 11.1
}
.nav_header {
width: 100%;
z-index: 999;
background-color: #fff;
}
.nav_btn {
width: 50px !important;
height: 50px !important;
background-color: transparent;
margin: 0px;
font-size: 25px;
color: #fff;
padding: 0px !important;
box-shadow: none !important;
background-position: center;
background-repeat: no-repeat;
background-size: 15px;
}
.nav_header_title {
height: 100%;
font-weight: 600;
font-size: 18px;
color: $dark_prime;
padding: 10px;
text-transform: capitalize;
width: calc(100% - 100px);
letter-spacing: 1px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding-left: 8px;
padding-right: 8px;
padding-top: 13px;
padding-bottom: 13px;
text-align: center;
}
.nav_header_title .icon {}
.back_icon {
background-image: url("/assets/back_icon.png");
}
.close_icon {
background-image: url("/assets/close_icon.png");
}
.more_icon {
background-image: url("/assets/more_icon.png");
background-size: 5px;
}
.clear {
clear: both !important;
}
.border {
border: 1px solid;
}
.borderNone {
border: none !important;
}
.nav_inner_btn {
width: 45px !important;
height: 45px !important;
background: transparent;
margin: 0px;
font-size: 25px;
color: #fff;
padding: 0px !important;
box-shadow: none !important;
background-repeat: no-repeat !important;
background-position: center !important;
background-size: 35px !important;
}
.nav_header_inner_title {
height: 100%;
font-weight: 200;
font-size: 22px;
color: #fff;
padding: 10px;
text-transform: capitalize;
width: calc(100% - 90px);
letter-spacing: 1px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding-left: 8px;
padding-right: 8px;
padding-top: 15px;
padding-bottom: 15px;
}
.nav_header_inner_title .icon {}
/*-------------------------------
08. OVERWRITTEN
--------------------------------*/
.activated {
background: transparent !important;
}
button {
box-shadow: none !important;
&:focus {
outline: none !important;
}
}
.item {
background: transparent !important;
padding: 0px !important;
.item-inner {
padding: 0px !important;
.input {
height: 100%;
.text-input {
padding: 0px !important;
margin: 0px !important;
width: 100%;
}
}
}
}
.button-md:hover:not(.disable-hover) {
background: transparent !important;
}
.header-md::after,
.tabs-md[tabsPlacement="top"]>.tabbar::after,
.footer-md::before,
.tabs-md[tabsPlacement="bottom"]>.tabbar::before {
background: transparent !important;
}
.landing_wizard_section {
.swiper-pagination {
bottom: 75px !important;
.swiper-pagination-bullet-active {
background-color: $white_color !important;
}
.swiper-pagination-bullet {
background-color: #8e84d5;
}
}
}
.bottom_main_tab_section {
background-color: $white_color;
height: 50px;
position: fixed;
bottom: 0px;
left: 0px;
right: 0px;
z-index: 999;
border-top-left-radius: 20px;
border-top-right-radius: 20px;
-webkit-box-shadow: 0px -2px 5px 0px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0px -2px 5px 0px rgba(0, 0, 0, 0.3);
box-shadow: 0px -2px 5px 0px rgba(0, 0, 0, 0.3);
ul {
padding: 0px;
margin: 0px;
height: 100%;
flex-direction: row;
box-sizing: border-box;
display: flex;
place-content: center space-around;
align-items: center;
li {
list-style: none;
width: 50px;
height: 50px;
display: inline-block;
text-align: center;
background-position: center;
background-repeat: no-repeat;
background-size: 35px;
}
.m1 {
background-image: url("/assets/m1.png");
&:focus {
background-image: url("/assets/m1_act.png");
}
&:hover {
background-image: url("/assets/m1_act.png");
}
}
.m2 {
background-image: url("/assets/m2.png");
&:focus {
background-image: url("/assets/m2_act.png");
}
&:hover {
background-image: url("/assets/m2_act.png");
}
}
.m3 {
background-image: url("/assets/m3.png");
&:focus {
background-image: url("/assets/m3_act.png");
}
&:hover {
background-image: url("/assets/m3_act.png");
}
}
.m4 {
background-image: url("/assets/m4.png");
&:focus {
background-image: url("/assets/m4_act.png");
}
&:hover {
background-image: url("/assets/m4_act.png");
}
}
.m1_act {
background-image: url("/assets/m1_act.png");
}
.m2_act {
background-image: url("/assets/m2_act.png");
}
.m3_act {
background-image: url("/assets/m3_act.png");
}
.m4_act {
background-image: url("/assets/m4_act.png");
}
}
}
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Ionic App</title>
<base href="/" />
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<link rel="icon" type="image/png" href="assets/icon/favicon.png" />
<!-- add to homescreen for ios -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
</head>
<body>
<app-root></app-root>
</body>
</html>
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.log(err));
/**
* This file includes polyfills needed by Angular and is loaded before the app.
* You can add your own extra polyfills to this file.
*
* This file is divided into 2 sections:
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
* file.
*
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
* automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
*
* Learn more in https://angular.io/guide/browser-support
*/
/***************************************************************************************************
* BROWSER POLYFILLS
*/
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
// import 'classlist.js'; // Run `npm install --save classlist.js`.
/**
* Web Animations `@angular/platform-browser/animations`
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
*/
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/**
* By default, zone.js will patch all possible macroTask and DomEvents
* user can disable parts of macroTask/DomEvents patch by setting following flags
* because those flags need to be set before `zone.js` being loaded, and webpack
* will put import in the top of bundle, so user need to create a separate file
* in this directory (for example: zone-flags.ts), and put the following flags
* into that file, and then add the following code before importing zone.js.
* import './zone-flags.ts';
*
* The flags allowed in zone-flags.ts are listed here.
*
* The following flags will work for all browsers.
*
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
* (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
*
* in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
* with the following flag, it will bypass `zone.js` patch for IE/Edge
*
* (window as any).__Zone_enable_cross_context_check = true;
*
*/
import './zone-flags.ts';
/***************************************************************************************************
* Zone JS is required by default for Angular itself.
*/
import 'zone.js/dist/zone'; // Included with Angular CLI.
/***************************************************************************************************
* APPLICATION IMPORTS
*/
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import 'zone.js/dist/zone-testing';
import { getTestBed } from '@angular/core/testing';
import {
BrowserDynamicTestingModule,
platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';
declare const require: any;
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
);
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);
// Ionic Variables and Theming. For more info, please see:
// http://ionicframework.com/docs/theming/
/** Ionic CSS Variables **/
:root {
/** primary **/
--ion-color-primary: #593799;
--ion-color-primary-rgb: 89, 55, 153;
--ion-color-primary-contrast: #ffffff;
--ion-color-primary-contrast-rgb: 89, 55, 153;
--ion-color-primary-shade: #593799;
--ion-color-primary-tint: #593799;
/** secondary **/
--ion-color-secondary: #0cd1e8;
--ion-color-secondary-rgb: 12, 209, 232;
--ion-color-secondary-contrast: #ffffff;
--ion-color-secondary-contrast-rgb: 255, 255, 255;
--ion-color-secondary-shade: #0bb8cc;
--ion-color-secondary-tint: #24d6ea;
/** tertiary **/
--ion-color-tertiary: #7044ff;
--ion-color-tertiary-rgb: 112, 68, 255;
--ion-color-tertiary-contrast: #ffffff;
--ion-color-tertiary-contrast-rgb: 255, 255, 255;
--ion-color-tertiary-shade: #633ce0;
--ion-color-tertiary-tint: #7e57ff;
/** success **/
--ion-color-success: #10dc60;
--ion-color-success-rgb: 16, 220, 96;
--ion-color-success-contrast: #ffffff;
--ion-color-success-contrast-rgb: 255, 255, 255;
--ion-color-success-shade: #0ec254;
--ion-color-success-tint: #28e070;
/** warning **/
--ion-color-warning: #ffce00;
--ion-color-warning-rgb: 255, 206, 0;
--ion-color-warning-contrast: #ffffff;
--ion-color-warning-contrast-rgb: 255, 255, 255;
--ion-color-warning-shade: #e0b500;
--ion-color-warning-tint: #ffd31a;
/** danger **/
--ion-color-danger: #f04141;
--ion-color-danger-rgb: 245, 61, 61;
--ion-color-danger-contrast: #ffffff;
--ion-color-danger-contrast-rgb: 255, 255, 255;
--ion-color-danger-shade: #d33939;
--ion-color-danger-tint: #f25454;
/** dark **/
--ion-color-dark: #222428;
--ion-color-dark-rgb: 34, 34, 34;
--ion-color-dark-contrast: #ffffff;
--ion-color-dark-contrast-rgb: 255, 255, 255;
--ion-color-dark-shade: #1e2023;
--ion-color-dark-tint: #383a3e;
/** medium **/
--ion-color-medium: #989aa2;
--ion-color-medium-rgb: 152, 154, 162;
--ion-color-medium-contrast: #ffffff;
--ion-color-medium-contrast-rgb: 255, 255, 255;
--ion-color-medium-shade: #86888f;
--ion-color-medium-tint: #a2a4ab;
/** light **/
--ion-color-light: #f4f5f8;
--ion-color-light-rgb: 244, 244, 244;
--ion-color-light-contrast: #000000;
--ion-color-light-contrast-rgb: 0, 0, 0;
--ion-color-light-shade: #d7d8da;
--ion-color-light-tint: #f5f6f9;
}
\ No newline at end of file
/**
* Prevents Angular change detection from
* running with certain Web Component callbacks
*/
(window as any).__Zone_disable_customElements = true;
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