Ver a proveniência

Partial commit

master
kj1352 há 6 anos
ascendente
cometimento
7883bc0984
11 ficheiros alterados com 314 adições e 135 eliminações
  1. +1
    -0
      src/app/app-routing.module.ts
  2. +6
    -1
      src/app/app.component.html
  3. +145
    -4
      src/app/app.component.scss
  4. +0
    -1
      src/app/cart/cart.page.ts
  5. +26
    -0
      src/app/profile/profile.module.ts
  6. +30
    -0
      src/app/profile/profile.page.html
  7. +55
    -0
      src/app/profile/profile.page.scss
  8. +27
    -0
      src/app/profile/profile.page.spec.ts
  9. +22
    -0
      src/app/profile/profile.page.ts
  10. +1
    -128
      src/global.scss
  11. +1
    -1
      src/index.html

+ 1
- 0
src/app/app-routing.module.ts Ver ficheiro

@@ -9,6 +9,7 @@ const routes: Routes = [
{ path: 'mall-details', loadChildren: './mall-details/mall-details.module#MallDetailsPageModule' },
{ path: 'outlet-details', loadChildren: './outlet-details/outlet-details.module#OutletDetailsPageModule' },
{ path: 'cart', loadChildren: './cart/cart.module#CartPageModule' },
{ path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' },
];

@NgModule({


+ 6
- 1
src/app/app.component.html Ver ficheiro

@@ -15,18 +15,23 @@
<div class="menu-items-holder" [ngClass]="{'active' : show_menu }">
<button (click)="navigateTo('malls')">
<ion-icon src="assets/custom/001-house.svg"></ion-icon>
<span> HOME </span>
</button>
<button>
<ion-icon src="assets/custom/002-bookmark.svg"></ion-icon>
<span> BOOKMARKS </span>
</button>
<button (click)="navigateTo('cart')">
<ion-icon src="assets/custom/cart.svg"></ion-icon>
<span> CART </span>
</button>
<button>
<ion-icon src="assets/custom/004-map.svg"></ion-icon>
<span> NEAR </span>
</button>
<button>
<button (click)="navigateTo('profile')">
<ion-icon src="assets/custom/005-boss.svg"></ion-icon>
<span> PROFILE </span>
</button>
</div>
</ion-app>

+ 145
- 4
src/app/app.component.scss Ver ficheiro

@@ -1,6 +1,147 @@
// App Styles
// ----------------------------------------------------------------------------
// Put style rules here that you want to apply to the entire application. These
// styles are for the entire app and not just one component. Additionally, this
// file can hold Sass mixins, functions, and placeholder classes to be imported
// and used throughout the application.
// Put style rules here that you want to apply to the entire application. These
// styles are for the entire app and not just one component. Additionally, this
// file can hold Sass mixins, functions, and placeholder classes to be imported
// and used throughout the application.

.menu-icon-holder {
background-color: #005cbe;
color: white;
position: fixed;
top: 0;
box-shadow: 0px 0px 5px var(--brand-blue);
width: 100px;
height: 100px;
text-align: center;
left: calc((100% - 100px)/2);
border-radius: 50%;
padding-top: 7px;
z-index: 1;
transition: transform 0.5s;
transform: translateY(calc(100vh - 40px));
opacity: 0.7;

&.hide {
display: none;
}

&.inactive {
transform: translateY(100vh);
}

ion-icon {
font-size: 30px;
}
}

.close-icon-holder {
background-color: white;
width: 70%;
position: fixed;
left: calc((100% - 70%) / 2);
height: 100px;
border-radius: 50%;
color: var(--brand-blue);
text-align: center;
z-index: 5;
bottom: -60px;
padding-top: 10px;
transition: transform 0.3s;
transform: scale(0);

&.active {
transform: scale(1);
}

ion-icon {
font-size: 25px;
}
}

.menu-items-holder {
background-image: url('../assets/custom/background-5.svg');
background-size: cover;
background-repeat: no-repeat;
background-position: left top;
border-radius: 50%;
position: fixed;
left: calc((100% - 150%) / 2);
bottom: -150px;
z-index: 4;
height: 300px;
width: 150%;
padding: 20px 30%;
display: flex;
justify-content: space-between;
align-items: flex-start;
transition: transform 0.3s;
transform: scale(0);

&.active {
transform: scale(1);
}

button {
background-color: white;
height: 50px;
width: 50px;
border-radius: 50%;
font-size: 20px;
position: relative;

span {
position: absolute;
bottom: -15px;
text-align: center;
display: block;
color: white;
letter-spacing: 0.5px;
font-weight: bold;
font-size: 10px;
width: 100%;
left: 0;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}

&:first-child {
transform: translateY(40px);
}

&:nth-child(2) {
transform: translateY(20px);
}

&:nth-child(3) {
transform: translateY(10px);
}

&:last-child {
transform: translateY(40px);
}

&:nth-child(4) {
transform: translateY(20px);
}
}
}

.overlay {
position: fixed;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
pointer-events: none;
background-color: black;
opacity: 0;
z-index: 3;
transition: opacity 0.5s;

&.active {
pointer-events: all;
opacity: 0.5;
}
}

+ 0
- 1
src/app/cart/cart.page.ts Ver ficheiro

@@ -6,7 +6,6 @@ import { MallService } from '../services/mall.service';
import { IMall } from '../models/mall';
import * as moment from 'moment';
import { Router } from '@angular/router';
import MenuItem from '../models/menu-item';

@Component({
selector: 'app-cart',


+ 26
- 0
src/app/profile/profile.module.ts Ver ficheiro

@@ -0,0 +1,26 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';

import { IonicModule } from '@ionic/angular';

import { ProfilePage } from './profile.page';

const routes: Routes = [
{
path: '',
component: ProfilePage
}
];

@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [ProfilePage]
})
export class ProfilePageModule {}

+ 30
- 0
src/app/profile/profile.page.html Ver ficheiro

@@ -0,0 +1,30 @@
<ion-content>
<div class="header-bar">
<div class="heading-holder">
<button (click)="back()"> <ion-icon name="arrow-back"></ion-icon> </button>
<h3> Profile </h3>
</div>
</div>

<section class="profile">
<div class="profile-details-holder">
<figure class="profile-image">

</figure>
<div class="content">
<h2> Mr. Christian Carry
<ion-button fill="clear" color="light" size="small"> Edit </ion-button>
</h2>
<ul class="contact">
<li> +91 0909239302 </li>
<li> christian.carry22232@gmail.com </li>
</ul>
</div>
</div>
<div class="location-details">
<div class="location"> Nagarbhavi, Bengaluru KA </div>
<button> <ion-icon name="locate"></ion-icon> </button>
</div>
</section>

</ion-content>

+ 55
- 0
src/app/profile/profile.page.scss Ver ficheiro

@@ -0,0 +1,55 @@
.header-bar {
background-image: url('../../assets/custom/background-5.svg');
background-size: cover;
background-repeat: no-repeat;
background-position: left top;
display: flex;
align-items: center;
justify-content: space-between;
padding: 15px;
height: 75px;
z-index: 3;
top: 0;
left: 0;
width: 100%;
position: sticky;

.heading-holder {
display: flex;
align-items: center;
}

button, a {
background-color: white;
color: var(--brand-blue);
font-size: 18px;
padding: 5px;
border-radius: 50%;
height: 30px;
width: 30px;
display: flex;
justify-content: center;
align-items: center;

&.active {
color: white;
background-color: var(--brand-blue);
}
}

h3 {
font-size: 16px;
color: white;
letter-spacing: 0.5px;
margin-left: 10px;
font-weight: 600;
}
}

.profile {
background-image: url('../../assets/custom/background-5.svg');
background-size: cover;
background-repeat: no-repeat;
background-position: left top;
color: white;
}

+ 27
- 0
src/app/profile/profile.page.spec.ts Ver ficheiro

@@ -0,0 +1,27 @@
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';

import { ProfilePage } from './profile.page';

describe('ProfilePage', () => {
let component: ProfilePage;
let fixture: ComponentFixture<ProfilePage>;

beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ProfilePage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));

beforeEach(() => {
fixture = TestBed.createComponent(ProfilePage);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
expect(component).toBeTruthy();
});
});

+ 22
- 0
src/app/profile/profile.page.ts Ver ficheiro

@@ -0,0 +1,22 @@
import { Component, OnInit } from '@angular/core';
import { Location } from '@angular/common';

@Component({
selector: 'app-profile',
templateUrl: './profile.page.html',
styleUrls: ['./profile.page.scss'],
})
export class ProfilePage implements OnInit {

constructor(
private location: Location
) { }

ngOnInit() {
}

back() {
this.location.back();
}

}

+ 1
- 128
src/global.scss Ver ficheiro

@@ -40,138 +40,11 @@ figure {
margin: 0;
}

header, h1, h2, h3, h4, h5 {
* {
font-family: 'M PLUS Rounded 1c', sans-serif;
margin: 0;
}

// Hamburger menu

.menu-icon-holder {
background-color: #005cbe;
color: white;
position: fixed;
bottom: -60px;
box-shadow: 0px 0px 5px var(--brand-blue);
width: 100px;
height: 100px;
text-align: center;
left: calc((100% - 100px)/2);
border-radius: 50%;
padding-top: 7px;
z-index: 1;
transition: transform 0.5s;
transform: translateY(0);
opacity: 0.7;

&.hide {
display: none;
}

&.inactive {
transform: translateY(100px);
}

ion-icon {
font-size: 30px;
}
}

.close-icon-holder {
background-color: white;
width: 70%;
position: fixed;
left: calc((100% - 70%) / 2);
height: 100px;
border-radius: 50%;
color: var(--brand-blue);
text-align: center;
z-index: 5;
bottom: -60px;
padding-top: 10px;
transition: transform 0.3s;
transform: scale(0);

&.active {
transform: scale(1);
}

ion-icon {
font-size: 25px;
}
}

.menu-items-holder {
background-image: url('assets/custom/background-5.svg');
background-size: cover;
background-repeat: no-repeat;
background-position: left top;
border-radius: 50%;
position: fixed;
left: calc((100% - 150%) / 2);
bottom: -150px;
z-index: 4;
height: 300px;
width: 150%;
padding: 20px 30%;
display: flex;
justify-content: space-between;
align-items: flex-start;
transition: transform 0.3s;
transform: scale(0);

&.active {
transform: scale(1);
}

button {
background-color: white;
height: 50px;
width: 50px;
border-radius: 50%;
font-size: 20px;
position: relative;

&:first-child {
transform: translateY(40px);
}

&:nth-child(2) {
transform: translateY(20px);
}

&:nth-child(3) {
transform: translateY(10px);
}

&:last-child {
transform: translateY(40px);
}

&:nth-child(4) {
transform: translateY(20px);
}
}
}

.overlay {
position: fixed;
top: 0;
left: 0;
height: 100vh;
width: 100vw;
pointer-events: none;
background-color: black;
opacity: 0;
z-index: 3;
transition: opacity 0.5s;

&.active {
pointer-events: all;
opacity: 0.5;
}
}

.results-utilities-holder {
display: flex;
width: 100%;


+ 1
- 1
src/index.html Ver ficheiro

@@ -18,7 +18,7 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<link rel="manifest" href="manifest.webmanifest">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=M+PLUS+Rounded+1c:400&display=swap">
<link href="https://fonts.googleapis.com/css?family=M+PLUS+Rounded+1c:400,500,700&display=swap" rel="stylesheet">
<meta name="theme-color" content="#1976d2">
</head>



Carregando…
Cancelar
Guardar