Merge branch 'MOHEMM-Q2-DEV' into Fatima-Q2-June
# Conflicts: # Mohem/src/app/hmg-common/services/connector/connector.service.tsMOHEMM-SFH-COLORS
@ -1,33 +1,38 @@
|
||||
import { NgModule } from '@angular/core';
|
||||
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
|
||||
|
||||
|
||||
const routes: Routes = [
|
||||
{ path: '', redirectTo: 'authentication/login', pathMatch: 'full' },
|
||||
{
|
||||
path: 'authentication', loadChildren: './authentication/authentication.module#AuthenticationPageModule'},
|
||||
{ path: 'home', loadChildren: './home/home.module#HomePageModule' },
|
||||
{ path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' },
|
||||
{ path: 'vacation-rule', loadChildren: './vacation-rule/vacation-rule.module#VacationRulePageModule' },
|
||||
{ path: 'accrual-balances', loadChildren: './accrual-balances/accrual-balances.module#AccrualBalancesPageModule' },
|
||||
{ path: 'my-team', loadChildren: './my-team/my-team.module#MyTeamPageModule' },
|
||||
{ path: 'attendance', loadChildren: './attendance/attendance.module#AttendancePageModule' },
|
||||
{ path: 'eit', loadChildren: './eit/eit.module#EITPageModule' },
|
||||
{ path: 'absence', loadChildren: './absence/absence.module#AbsencePageModule' },
|
||||
{ path: 'notification', loadChildren: './notification/notification.module#NotificationPageModule' },
|
||||
{ path: 'my-specialist', loadChildren: './my-specialist/my-specialist.module#MySpecialistPageModule' },
|
||||
{ path: 'my-subordinate', loadChildren: './my-subordinate/my-subordinate.module#MySubordinatePageModule' },
|
||||
{ path: 'time-card', loadChildren: './time-card/time-card.module#TimeCardPageModule' },
|
||||
{ path: 'payslip', loadChildren: './payslip/payslip.module#PayslipPageModule' },
{ path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' }
|
||||
import { NgModule } from '@angular/core';
|
||||
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
|
||||
|
||||
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
/*RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules}),*/
|
||||
RouterModule.forRoot(routes),
|
||||
],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class AppRoutingModule { }
|
||||
|
||||
const routes: Routes = [
|
||||
{ path: '', redirectTo: 'authentication/login', pathMatch: 'full' },
|
||||
{
|
||||
path: 'authentication', loadChildren: './authentication/authentication.module#AuthenticationPageModule'
|
||||
},
|
||||
{ path: 'home', loadChildren: './home/home.module#HomePageModule' },
|
||||
{ path: 'profile', loadChildren: './profile/profile.module#ProfilePageModule' },
|
||||
{ path: 'vacation-rule', loadChildren: './vacation-rule/vacation-rule.module#VacationRulePageModule' },
|
||||
{ path: 'accrual-balances', loadChildren: './accrual-balances/accrual-balances.module#AccrualBalancesPageModule' },
|
||||
{ path: 'my-team', loadChildren: './my-team/my-team.module#MyTeamPageModule' },
|
||||
{ path: 'attendance', loadChildren: './attendance/attendance.module#AttendancePageModule' },
|
||||
{ path: 'eit', loadChildren: './eit/eit.module#EITPageModule' },
|
||||
{ path: 'absence', loadChildren: './absence/absence.module#AbsencePageModule' },
|
||||
{ path: 'notification', loadChildren: './notification/notification.module#NotificationPageModule' },
|
||||
{ path: 'my-specialist', loadChildren: './my-specialist/my-specialist.module#MySpecialistPageModule' },
|
||||
{ path: 'my-subordinate', loadChildren: './my-subordinate/my-subordinate.module#MySubordinatePageModule' },
|
||||
{ path: 'time-card', loadChildren: './time-card/time-card.module#TimeCardPageModule' },
|
||||
{ path: 'payslip', loadChildren: './payslip/payslip.module#PayslipPageModule' },
|
||||
{ path: 'attendance-tracking', loadChildren: './attendance-tracking/attendance-tracking.module#AttendanceTrackingPageModule' },
|
||||
{ path: 'itemforsale', loadChildren: './itemforsale/itemforsale.module#ItemforsalePageModule' },
|
||||
{ path: 'offersdiscount', loadChildren: './offersdiscount/offersdiscount.module#OffersdiscountPageModule' }
|
||||
|
||||
|
||||
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
/*RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules}),*/
|
||||
RouterModule.forRoot(routes),
|
||||
],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class AppRoutingModule { }
|
||||
|
||||
@ -0,0 +1,242 @@
|
||||
|
||||
<ion-content>
|
||||
<div class="head-title">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<ion-buttons slot="start">
|
||||
<ion-back-button color="light" class="btnBack" defaultHref="/home"></ion-back-button>
|
||||
</ion-buttons>
|
||||
<ion-title color="light" >{{ts.trPK('itemforsale','title')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</div>
|
||||
<div class="header"></div>
|
||||
<div class="bottom"></div>
|
||||
<div class="md-stepper-horizontal ">
|
||||
<div class="md-step active " [ngClass]="step >1 ? 'green' : 'orange'">
|
||||
<div class="md-step-circle"><span>✓</span></div>
|
||||
<div class="md-step-title">Select Category</div>
|
||||
<div class="md-step-optional">Completed</div>
|
||||
<div class="md-step-bar-left"></div>
|
||||
<div class="md-step-bar-right"></div>
|
||||
</div>
|
||||
<div class="md-step " [ngClass]="step >2 ? 'green' : step ==2 ? 'orange' : ''">
|
||||
<div class="md-step-circle"><span>✓</span></div>
|
||||
<div class="md-step-title">Add Details</div>
|
||||
|
||||
<div class="md-step-optional">{{step >2 ? "Completed" : "Locked"}}</div>
|
||||
<div class="md-step-bar-left"></div>
|
||||
<div class="md-step-bar-right"></div>
|
||||
</div>
|
||||
<div class="md-step " [ngClass]="step >3 ? 'green' : step ==3 ? 'orange' : ''">
|
||||
<div class="md-step-circle"><span>✓</span></div>
|
||||
<div class="md-step-title">Review & Sell</div>
|
||||
<div class="md-step-optional">{{step >3 ? "Completed" : "Locked"}}</div>
|
||||
<div class="md-step-bar-left"></div>
|
||||
<div class="md-step-bar-right"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
|
||||
|
||||
|
||||
<div class="offering" *ngIf="step==1">
|
||||
<h2>What are you offering?</h2>
|
||||
</div>
|
||||
<ion-grid *ngIf="step==1">
|
||||
<ion-row>
|
||||
<ion-col size="4">
|
||||
<div class="sale-icon" (click)="nextStep()">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</ion-col>
|
||||
<ion-col size="4">
|
||||
<div class="sale-icon" (click)="openItem()">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</ion-col>
|
||||
<ion-col size="4">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
<ion-row>
|
||||
<ion-col size="4">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</ion-col>
|
||||
<ion-col size="4">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</ion-col>
|
||||
<ion-col size="4">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</ion-grid>
|
||||
<div class="offering" *ngIf="step==2">
|
||||
<h2>Add Details</h2>
|
||||
</div>
|
||||
<div class="add-details" *ngIf="step==2">
|
||||
<ion-grid>
|
||||
<ion-row>
|
||||
<p>Item Info</p>
|
||||
<ion-col size="12">
|
||||
<ion-item lines="none">
|
||||
<ion-input placeholder="Item Info"></ion-input>
|
||||
</ion-item>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
<ion-row>
|
||||
|
||||
<ion-col size="12">
|
||||
<ion-item lines="none">
|
||||
|
||||
|
||||
<ion-textarea rows="6" cols="20" placeholder="Description"></ion-textarea>
|
||||
</ion-item>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
<ion-row>
|
||||
<ion-col>
|
||||
<p>Item Condition</p>
|
||||
<ion-radio-group value="new">
|
||||
|
||||
|
||||
|
||||
<ion-col>
|
||||
<ion-radio value="new"></ion-radio>
|
||||
<ion-label>New</ion-label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<ion-radio value="used"></ion-radio>
|
||||
<ion-label>Used</ion-label>
|
||||
</ion-col>
|
||||
|
||||
|
||||
</ion-radio-group>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
<ion-row>
|
||||
|
||||
<ion-col size="12">
|
||||
<p>Item Price</p>
|
||||
<ion-item lines="none">
|
||||
<ion-input placeholder="Item Price"></ion-input>
|
||||
</ion-item>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row>
|
||||
|
||||
<p>Item Photos</p>
|
||||
</ion-row>
|
||||
<ion-row>
|
||||
<ion-col lines="none" size="4">
|
||||
<div class="image-container">
|
||||
<div class="uploaded">
|
||||
<div class="closed">X</div>
|
||||
<img src="assets/imgs/itemsforsale/fashion .svg" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ion-col>
|
||||
<ion-col lines="none" size="4">
|
||||
<div class="image-container">
|
||||
<div class="uploaded">
|
||||
<div class="closed">X</div>
|
||||
<img src="assets/imgs/itemsforsale/fashion .svg" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ion-col>
|
||||
|
||||
</ion-row>
|
||||
|
||||
|
||||
|
||||
</ion-grid>
|
||||
</div>
|
||||
|
||||
<div class="offering" *ngIf="step==3">
|
||||
<h2>Review & Sell</h2>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="add-details" *ngIf="step==3">
|
||||
<h2>Furniture Table</h2>
|
||||
|
||||
|
||||
|
||||
<p>
|
||||
Consectetur adipiscing elit. Donec blandit diam nulla, non euismod eros efficitur imperdiet. Fusce erat enim, volutpat at enim in, venenatis iaculis risus.
|
||||
</p>
|
||||
<div class="description-details">
|
||||
<p class="orange">Used</p>
|
||||
|
||||
<img src="assets/imgs/itemsforsale/fashion .svg" />
|
||||
<img src="assets/imgs/itemsforsale/fashion .svg" />
|
||||
<div class="selling">
|
||||
|
||||
|
||||
<strong>Selling for </strong> <h2>500 SAR</h2>
|
||||
</div>
|
||||
<div class="waring">
|
||||
<ion-icon name="help-circle"></ion-icon> This ad will be valid for 2 week after approval
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<ion-footer *ngIf="step>1">
|
||||
<div class="centerDiv">
|
||||
<ion-button class="footer-button" ion-button (click)="step =3" *ngIf="step ==2">
|
||||
{{ts.trPK('general','next')}} </ion-button>
|
||||
|
||||
<ion-button class="footer-button" ion-button (click)="step =4" *ngIf="step ==3">
|
||||
{{ts.trPK('general','submit')}} </ion-button>
|
||||
</div>
|
||||
</ion-footer>
|
||||
|
||||
</ion-content>
|
||||
@ -0,0 +1,254 @@
|
||||
.md-stepper-horizontal {
|
||||
|
||||
width: 90%;
|
||||
margin: 0 auto;
|
||||
background-color: #FFFFFF;
|
||||
box-shadow: 0 3px 8px -6px #DDDDDD;
|
||||
|
||||
margin: auto;
|
||||
position: relative;
|
||||
border-radius: 25px;
|
||||
}
|
||||
.md-stepper-horizontal .md-step {
|
||||
display:table-cell;
|
||||
position:relative;
|
||||
padding:24px;
|
||||
}
|
||||
.md-stepper-horizontal .md-step:hover,
|
||||
.md-stepper-horizontal .md-step:active {
|
||||
background-color:rgba(0,0,0,0.04);
|
||||
}
|
||||
.md-stepper-horizontal .md-step:active {
|
||||
border-radius: 15% / 75%;
|
||||
}
|
||||
.md-stepper-horizontal .md-step:first-child:active {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.md-stepper-horizontal .md-step:last-child:active {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.md-stepper-horizontal .md-step:hover .md-step-circle {
|
||||
background-color:#757575;
|
||||
}
|
||||
.md-stepper-horizontal .md-step:first-child .md-step-bar-left,
|
||||
.md-stepper-horizontal .md-step:last-child .md-step-bar-right {
|
||||
display:none;
|
||||
}
|
||||
.md-stepper-horizontal .md-step .md-step-circle {
|
||||
width:30px;
|
||||
height:30px;
|
||||
margin:0 auto;
|
||||
background-color:#999999;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
line-height:30px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color:#FFFFFF;
|
||||
}
|
||||
.md-stepper-horizontal.green .md-step.active .md-step-circle {
|
||||
background-color:#00AE4D;
|
||||
}
|
||||
.md-stepper-horizontal.orange .md-step.active .md-step-circle {
|
||||
background-color:#CC9B14;
|
||||
}
|
||||
.md-stepper-horizontal .md-step.active .md-step-circle {
|
||||
background-color: rgb(33,150,243);
|
||||
}
|
||||
.md-stepper-horizontal .md-step.done .md-step-circle:before {
|
||||
font-family:'FontAwesome';
|
||||
font-weight:100;
|
||||
content: "\f00c";
|
||||
}
|
||||
.md-stepper-horizontal .md-step.done .md-step-circle *,
|
||||
.md-stepper-horizontal .md-step.editable .md-step-circle * {
|
||||
display:none;
|
||||
}
|
||||
.md-stepper-horizontal .md-step.editable .md-step-circle {
|
||||
-moz-transform: scaleX(-1);
|
||||
-o-transform: scaleX(-1);
|
||||
-webkit-transform: scaleX(-1);
|
||||
transform: scaleX(-1);
|
||||
}
|
||||
.md-stepper-horizontal .md-step.editable .md-step-circle:before {
|
||||
font-family:'FontAwesome';
|
||||
font-weight:100;
|
||||
content: "\f040";
|
||||
}
|
||||
.md-stepper-horizontal .md-step .md-step-title {
|
||||
margin-top: 10px;
|
||||
font-size: 15px;
|
||||
font-weight:bold;
|
||||
}
|
||||
.md-stepper-horizontal .md-step .md-step-title,
|
||||
.md-stepper-horizontal .md-step .md-step-optional {
|
||||
text-align: center;
|
||||
color:rgba(0,0,0,.26);
|
||||
}
|
||||
.md-stepper-horizontal .md-step.active .md-step-title {
|
||||
font-weight: 600;
|
||||
color:rgba(0,0,0,.87);
|
||||
}
|
||||
.md-stepper-horizontal .md-step.active.done .md-step-title,
|
||||
.md-stepper-horizontal .md-step.active.editable .md-step-title {
|
||||
font-weight:600;
|
||||
}
|
||||
.md-stepper-horizontal .md-step .md-step-optional {
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.md-stepper-horizontal .md-step .md-step-bar-left,
|
||||
.md-stepper-horizontal .md-step .md-step-bar-right {
|
||||
position:absolute;
|
||||
top:36px;
|
||||
height:1px;
|
||||
border-top:1px solid #DDDDDD;
|
||||
}
|
||||
.md-stepper-horizontal .md-step .md-step-bar-right {
|
||||
right:0;
|
||||
left:50%;
|
||||
margin-left:20px;
|
||||
}
|
||||
.md-stepper-horizontal .md-step .md-step-bar-left {
|
||||
left:0;
|
||||
right:50%;
|
||||
margin-right:20px;
|
||||
}
|
||||
.header{
|
||||
height: 150px;
|
||||
width: 100%;
|
||||
|
||||
position: absolute;
|
||||
background: #259CB8;
|
||||
top: 0;
|
||||
}
|
||||
.header-toolbar{
|
||||
--background: #259CB8 !important;
|
||||
}
|
||||
.bottom{
|
||||
height: 88%;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background: #F5F5F5;
|
||||
top: 20%;
|
||||
}
|
||||
.md-step-optional{
|
||||
font-size: 12px;
|
||||
background: #cccccc;
|
||||
color: #ffffff !important;
|
||||
padding: 2px;
|
||||
border-radius: 5px;
|
||||
margin: 5px;
|
||||
}
|
||||
.orange .md-step-optional{
|
||||
font-size: 12px;
|
||||
background: #CC9B14;
|
||||
color: #ffffff !important;
|
||||
padding: 2px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.green .md-step-optional{
|
||||
font-size: 12px;
|
||||
background-color:#00AE4D;
|
||||
color: #ffffff !important;
|
||||
padding: 2px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
.green .md-step-circle{
|
||||
background-color:#00AE4D !important;
|
||||
}
|
||||
.orange .md-step-circle{
|
||||
background: #CC9B14 !important;
|
||||
}
|
||||
.content{
|
||||
position: relative;
|
||||
}
|
||||
.offering{
|
||||
font-weight: bold;
|
||||
margin:20px;
|
||||
position: relative;
|
||||
}
|
||||
.offering h2{
|
||||
font-weight: bold;
|
||||
}
|
||||
.sale-icon{
|
||||
box-shadow: 1px 1px 5px 1px #cccc;
|
||||
padding: 10px;
|
||||
margin: 5px;
|
||||
border-radius: 10px;
|
||||
background: #fff;
|
||||
}
|
||||
.sale-icon ion-icon{
|
||||
font-size: 35px;
|
||||
}
|
||||
.sale-icon p{
|
||||
margin-top:5px;
|
||||
}
|
||||
.add-details{
|
||||
background: #fff;
|
||||
margin: 15px;
|
||||
padding: 10px;
|
||||
box-shadow: 3px 4px 3px -1px #ccc;
|
||||
border-radius: 20px;
|
||||
}
|
||||
.add-details ion-item{
|
||||
border-radius: 25px;
|
||||
border: 1px solid #cdcd;
|
||||
padding: 5px;
|
||||
}
|
||||
.add-details p{
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
}
|
||||
.add-details ion-label{
|
||||
margin: 10px;
|
||||
position: relative;
|
||||
bottom: 3px;
|
||||
}
|
||||
.add-details ion-radio {
|
||||
--color-checked: #009688;
|
||||
}
|
||||
.image-container{
|
||||
position: relative;
|
||||
height: 70px;
|
||||
}
|
||||
.image-container .uploaded{
|
||||
position: absolute;
|
||||
}
|
||||
.image-container .uploaded .closed{
|
||||
position: absolute;
|
||||
right: 0;
|
||||
font-size: 14px;
|
||||
color: #fff;
|
||||
top: -15px;
|
||||
right: -10px;
|
||||
font-weight: bolder;
|
||||
background: red;
|
||||
padding: 6px;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
line-height: .7;
|
||||
}
|
||||
.image-container .uploaded img{
|
||||
width: 70px;
|
||||
}
|
||||
.footer-button{
|
||||
background: var(--newgreen)!important;border-radius: 10px; --background: transparent;
|
||||
width: 80%;
|
||||
}
|
||||
.description-details .orange{
|
||||
color:orange
|
||||
}
|
||||
.description-details img{
|
||||
margin:10px;
|
||||
}
|
||||
.waring{color: red;
|
||||
padding: 10px;
|
||||
font-size: 14px;}
|
||||
.selling h2{
|
||||
display: inline-block;
|
||||
font-weight: bolder;
|
||||
}
|
||||
.flaot-button{float:right;margin:30px}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { HomeComponent } from './home.component';
|
||||
|
||||
describe('HomeComponent', () => {
|
||||
let component: HomeComponent;
|
||||
let fixture: ComponentFixture<HomeComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ HomeComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(HomeComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,26 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-home',
|
||||
templateUrl: './home.component.html',
|
||||
styleUrls: ['./home.component.scss'],
|
||||
})
|
||||
export class HomeComponent implements OnInit {
|
||||
step: any = 1;
|
||||
constructor(public ts: TranslatorService, public cs: CommonService,) { }
|
||||
|
||||
ngOnInit() { }
|
||||
openItem() {
|
||||
|
||||
|
||||
this.cs.navigateForward('/itemforsale/items');
|
||||
}
|
||||
nextStep() {
|
||||
this.step = 2;
|
||||
}
|
||||
openMyAds() {
|
||||
this.cs.navigateForward('/itemforsale/my-ads');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
<ion-content>
|
||||
<div class="head-title">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<ion-buttons slot="start">
|
||||
<ion-back-button color="light" class="btnBack" defaultHref="/home"></ion-back-button>
|
||||
</ion-buttons>
|
||||
<ion-title color="light" >{{ts.trPK('itemforsale','title')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</div>
|
||||
<div class="header"></div>
|
||||
<div class="bottom"></div>
|
||||
<div>
|
||||
<ion-card>
|
||||
<ion-card-header>
|
||||
<img src="assets/imgs/itemsforsale/furniture.svg" />
|
||||
|
||||
<ion-card-title>Furniture Table</ion-card-title>
|
||||
</ion-card-header>
|
||||
|
||||
<ion-card-content>
|
||||
Keep close to Nature's heart... and break clear away, once in awhile,
|
||||
and climb a mountain or spend a week in the woods. Wash your spirit clean.
|
||||
<div class="content-bottom">
|
||||
<p class="green">New</p>
|
||||
<h1>500 SAR</h1>
|
||||
</div>
|
||||
<ion-item-divider>
|
||||
|
||||
</ion-item-divider>
|
||||
|
||||
<div class="profile">
|
||||
<ion-item lines="none" >
|
||||
<ion-avatar slot="start">
|
||||
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==">
|
||||
</ion-avatar>
|
||||
<ion-label>
|
||||
<h2>Aslam Khan</h2>
|
||||
<p>Published on 22 April 2020</p>
|
||||
<p><a href="">View Profile</a></p>
|
||||
</ion-label>
|
||||
|
||||
</ion-item>
|
||||
|
||||
</div>
|
||||
</ion-card-content>
|
||||
|
||||
|
||||
</ion-card>
|
||||
</div>
|
||||
|
||||
|
||||
<ion-footer >
|
||||
<div class="centerDiv details-button" >
|
||||
<ion-button class="footer-button" ion-button>
|
||||
{{ts.trPK('sms','title')}} </ion-button>
|
||||
|
||||
<ion-button class="footer-button" ion-button>
|
||||
{{ts.trPK('vacation-rule','call')}} </ion-button>
|
||||
</div>
|
||||
</ion-footer>
|
||||
</ion-content>
|
||||
@ -0,0 +1,35 @@
|
||||
.header{
|
||||
height: 150px;
|
||||
width: 100%;
|
||||
|
||||
position: absolute;
|
||||
background: #259CB8;
|
||||
top: 0;
|
||||
}
|
||||
.header-toolbar{
|
||||
--background: #259CB8 !important;
|
||||
}
|
||||
.bottom{
|
||||
height: 88%;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background: #F5F5F5;
|
||||
top: 20%;
|
||||
}
|
||||
ion-card-header{
|
||||
background-color: #fff;
|
||||
padding: 15px !important;
|
||||
}
|
||||
.content-bottom{
|
||||
padding: 15px;
|
||||
}
|
||||
.green{
|
||||
color:green;
|
||||
font-weight: bold;
|
||||
}
|
||||
.content-bottom h1{
|
||||
font-size: 24px;
|
||||
}
|
||||
.details-button ion-button{
|
||||
--background: #565656;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ItemDetailsComponent } from './item-details.component';
|
||||
|
||||
describe('ItemDetailsComponent', () => {
|
||||
let component: ItemDetailsComponent;
|
||||
let fixture: ComponentFixture<ItemDetailsComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ItemDetailsComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ItemDetailsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,15 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-item-details',
|
||||
templateUrl: './item-details.component.html',
|
||||
styleUrls: ['./item-details.component.scss'],
|
||||
})
|
||||
export class ItemDetailsComponent implements OnInit {
|
||||
constructor(public ts: TranslatorService, public cs: CommonService,) { }
|
||||
|
||||
ngOnInit() { }
|
||||
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
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 { ItemforsalePage } from './itemforsale.page';
|
||||
import { HomeComponent } from './home/home.component';
|
||||
import { ItemsComponent } from './items/items.component';
|
||||
import { ItemDetailsComponent } from './item-details/item-details.component';
|
||||
import { MyAdsComponent } from './my-ads/my-ads.component';
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
path: '',
|
||||
component: ItemforsalePage,
|
||||
children: [
|
||||
{
|
||||
path: 'home',
|
||||
component: HomeComponent
|
||||
},
|
||||
{
|
||||
path: 'items',
|
||||
component: ItemsComponent
|
||||
},
|
||||
{
|
||||
path: 'items-details',
|
||||
component: ItemDetailsComponent
|
||||
},
|
||||
{
|
||||
path: 'my-ads',
|
||||
component: MyAdsComponent
|
||||
}
|
||||
],
|
||||
}
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
IonicModule,
|
||||
RouterModule.forChild(routes)
|
||||
],
|
||||
declarations: [ItemforsalePage, HomeComponent, ItemsComponent, ItemDetailsComponent, MyAdsComponent]
|
||||
})
|
||||
export class ItemforsalePageModule { }
|
||||
@ -0,0 +1,4 @@
|
||||
|
||||
<ion-content>
|
||||
<ion-router-outlet></ion-router-outlet>
|
||||
</ion-content>
|
||||
@ -0,0 +1 @@
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ItemforsalePage } from './itemforsale.page';
|
||||
|
||||
describe('ItemforsalePage', () => {
|
||||
let component: ItemforsalePage;
|
||||
let fixture: ComponentFixture<ItemforsalePage>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ItemforsalePage ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ItemforsalePage);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,15 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-itemforsale',
|
||||
templateUrl: './itemforsale.page.html',
|
||||
styleUrls: ['./itemforsale.page.scss'],
|
||||
})
|
||||
export class ItemforsalePage implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,187 @@
|
||||
<ion-content>
|
||||
<div class="head-title">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<ion-buttons slot="start">
|
||||
<ion-back-button color="light" class="btnBack" defaultHref="/home"></ion-back-button>
|
||||
</ion-buttons>
|
||||
<ion-title color="light" >{{ts.trPK('itemforsale','title')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</div>
|
||||
<div class="segments-container">
|
||||
<ion-segment (ionChange)="segmentChanged($event)" value="1">
|
||||
<ion-segment-button value="1" >
|
||||
<ion-label>Item for sale</ion-label>
|
||||
</ion-segment-button>
|
||||
<ion-segment-button value="2">
|
||||
<ion-label>My Posted Ads</ion-label>
|
||||
</ion-segment-button>
|
||||
</ion-segment>
|
||||
</div>
|
||||
<div class="header"></div>
|
||||
<div class="bottom"></div>
|
||||
|
||||
<div class="sales-items" *ngIf="segment =='1'">
|
||||
<ion-grid>
|
||||
<ion-row>
|
||||
|
||||
<ion-col size="12">
|
||||
<ion-item lines="none" class="SearchtextBox">
|
||||
<ion-input placeholder="Search Item"></ion-input>
|
||||
</ion-item>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row>
|
||||
<ion-col size="10">
|
||||
<p class="filterText">Browse Category</p>
|
||||
</ion-col>
|
||||
<ion-col size="2">
|
||||
<img src="assets/imgs/itemsforsale/filter.svg">
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</ion-grid>
|
||||
|
||||
<div class="container-icon">
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ion-row>
|
||||
<ion-col size="6" (click)="openDetails()">
|
||||
<ion-card>
|
||||
<ion-card-header>
|
||||
<img src="assets/imgs/itemsforsale/furniture.svg" />
|
||||
|
||||
<ion-card-title>Card Title</ion-card-title>
|
||||
</ion-card-header>
|
||||
|
||||
<ion-card-content>
|
||||
Keep close to Nature's heart... and break
|
||||
<p class="orange">
|
||||
Used
|
||||
</p>
|
||||
<ion-row>
|
||||
<ion-col size="10">
|
||||
<strong>
|
||||
500 SAR
|
||||
</strong>
|
||||
</ion-col>
|
||||
<ion-col size="2">
|
||||
<ion-icon name="arrow-round-forward"></ion-icon>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
</ion-col>
|
||||
<ion-col size="6">
|
||||
<ion-card>
|
||||
<ion-card-header>
|
||||
<img src="assets/imgs/itemsforsale/furniture.svg" />
|
||||
|
||||
<ion-card-title>Card Title</ion-card-title>
|
||||
</ion-card-header>
|
||||
|
||||
<ion-card-content>
|
||||
Keep close to Nature's heart... and break
|
||||
<p class="green">
|
||||
New
|
||||
</p>
|
||||
<ion-row>
|
||||
<ion-col size="10">
|
||||
<strong>
|
||||
500 SAR
|
||||
</strong>
|
||||
</ion-col>
|
||||
<ion-col size="2">
|
||||
<ion-icon name="arrow-round-forward"></ion-icon>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
|
||||
<div class="my-ads" *ngIf="segment =='2'">
|
||||
<ion-row>
|
||||
<ion-item button (click)="testClick()">
|
||||
<ion-thumbnail slot="start">
|
||||
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==">
|
||||
</ion-thumbnail>
|
||||
<ion-label>
|
||||
<h3>Furniture Table</h3>
|
||||
<p>good condition only 6th month used with bed and mattress</p>
|
||||
<ion-row>
|
||||
<ion-col size="8">
|
||||
<p class="yellow">Pending Review</p>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<img class="icon" src="assets/imgs/itemsforsale/delete.svg" />
|
||||
<img class="icon edit" src="assets/imgs/itemsforsale/edit.svg" />
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</ion-label>
|
||||
|
||||
</ion-item>
|
||||
</ion-row>
|
||||
</div>
|
||||
<ion-fab-button class="flaot-button" (click)="openMyAds()"><ion-icon name="add"></ion-icon></ion-fab-button>
|
||||
<ion-footer *ngIf="segment=='2'">
|
||||
<div class="centerDiv">
|
||||
<ion-button class="footer-button" ion-button>
|
||||
{{ts.trPK('general','next')}} </ion-button>
|
||||
|
||||
</div>
|
||||
</ion-footer>
|
||||
|
||||
</ion-content>
|
||||
|
||||
@ -0,0 +1,108 @@
|
||||
|
||||
.header{
|
||||
|
||||
width: 100%;
|
||||
|
||||
position: absolute;
|
||||
background: #259CB8;
|
||||
top: 0;
|
||||
}
|
||||
.header-toolbar{
|
||||
--background: #259CB8 !important;
|
||||
}
|
||||
.bottom{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background: #F5F5F5;
|
||||
|
||||
}
|
||||
|
||||
.SearchtextBox{
|
||||
margin: 10px;
|
||||
border-radius: 20px;
|
||||
}
|
||||
.filterText{
|
||||
margin: 5px 15px 15px;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.container-icon{
|
||||
padding: 0 10px 20px;
|
||||
position: relative;
|
||||
white-space:nowrap;
|
||||
overflow-x:auto;
|
||||
}
|
||||
|
||||
.box-icon{
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin: 0px;
|
||||
display: inline-block;
|
||||
}
|
||||
.sale-icon{
|
||||
box-shadow: 1px 1px 5px 1px #cccc;
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
border-radius: 10px;
|
||||
background: #fff;
|
||||
}
|
||||
.sale-icon ion-icon{
|
||||
font-size: 25px;
|
||||
}
|
||||
.sale-icon p{
|
||||
margin-top:5px;
|
||||
}
|
||||
.bottom-icon{
|
||||
text-overflow: clip;
|
||||
white-space: normal;
|
||||
}
|
||||
ion-card-header{
|
||||
background: #fff;
|
||||
}
|
||||
ion-card-header img{
|
||||
margin:15px auto;
|
||||
}
|
||||
ion-card-title{
|
||||
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
padding: 5px;
|
||||
}
|
||||
.orange{
|
||||
color: orange;
|
||||
}
|
||||
.green{
|
||||
color:#00AE4D;
|
||||
}
|
||||
ion-segment-button ion-label{
|
||||
padding: 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
.segment-button-checked ion-label{
|
||||
color: #fff !important;
|
||||
}
|
||||
.segment-button-checked{
|
||||
background: rgb(46, 46, 46);
|
||||
}
|
||||
ion-item{
|
||||
--background: #fff;
|
||||
margin: 10px;
|
||||
border-radius: 25px;
|
||||
padding: 5px;
|
||||
}
|
||||
ion-item h3{
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
.yellow{
|
||||
color:#ffc107;
|
||||
}
|
||||
|
||||
ion-item .icon{
|
||||
margin: 5px;
|
||||
}
|
||||
.edit{
|
||||
margin-left:20px !important;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ItemsComponent } from './items.component';
|
||||
|
||||
describe('ItemsComponent', () => {
|
||||
let component: ItemsComponent;
|
||||
let fixture: ComponentFixture<ItemsComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ ItemsComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ItemsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,21 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-items',
|
||||
templateUrl: './items.component.html',
|
||||
styleUrls: ['./items.component.scss'],
|
||||
})
|
||||
export class ItemsComponent implements OnInit {
|
||||
segment: any = '1';
|
||||
constructor(public ts: TranslatorService, public cs: CommonService,) { }
|
||||
|
||||
ngOnInit() { }
|
||||
openDetails() {
|
||||
this.cs.navigateForward('/itemforsale/items-details');
|
||||
}
|
||||
segmentChanged(value) {
|
||||
this.segment = value.detail.value;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
<ion-content>
|
||||
<div class="head-title">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<ion-buttons slot="start">
|
||||
<ion-back-button color="light" class="btnBack" defaultHref="/home"></ion-back-button>
|
||||
</ion-buttons>
|
||||
<ion-title color="light" >{{ts.trPK('itemforsale','title')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
@ -0,0 +1,11 @@
|
||||
.header{
|
||||
height: 150px;
|
||||
width: 100%;
|
||||
|
||||
position: absolute;
|
||||
background: #259CB8;
|
||||
top: 0;
|
||||
}
|
||||
.header-toolbar{
|
||||
--background: #259CB8 !important;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { MyAdsComponent } from './my-ads.component';
|
||||
|
||||
describe('MyAdsComponent', () => {
|
||||
let component: MyAdsComponent;
|
||||
let fixture: ComponentFixture<MyAdsComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ MyAdsComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(MyAdsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,15 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-my-ads',
|
||||
templateUrl: './my-ads.component.html',
|
||||
styleUrls: ['./my-ads.component.scss'],
|
||||
})
|
||||
export class MyAdsComponent implements OnInit {
|
||||
|
||||
constructor(public ts: TranslatorService, public cs: CommonService,) { }
|
||||
ngOnInit() { }
|
||||
|
||||
}
|
||||
@ -0,0 +1,195 @@
|
||||
|
||||
|
||||
<ion-header>
|
||||
<ion-toolbar class="header-toolbar-new">
|
||||
<ion-buttons slot="start">
|
||||
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
|
||||
</ion-buttons>
|
||||
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','HR-request')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
|
||||
<ion-content>
|
||||
<div *ngIf="!showRequestDetails" class="contentBg">
|
||||
<div class="result-graph" >
|
||||
<div class="user-info">
|
||||
<div class="user-image-container">
|
||||
<div class="user-image">
|
||||
<img class="img" [src]="EmpImg ? 'data:image/png;base64,'+ EmpImg : '../assets/imgs/profile.png'" alt="Team Member Image"/>
|
||||
</div>
|
||||
</div>
|
||||
<div style="margin-top: 18px;">
|
||||
|
||||
<span class="Nametext">{{EmpName}}</span>
|
||||
<p style=" font-size: 12px; color: rgb(128, 124, 124);">{{EmpEmail}}</p>
|
||||
<!-- <span>{{EmpJob}}</span> -->
|
||||
</div>
|
||||
<div >
|
||||
<ion-row>
|
||||
<ion-col style="border-right: 1px solid rgb(221 221 221);">
|
||||
<p style="font-size: 12px; color: rgb(128, 124, 124);">{{ts.trPK('userProfile','role')}}</p>
|
||||
<span class="Boldtext">{{EmpJob}}</span>
|
||||
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<p style="font-size: 12px; color: rgb(128, 124, 124);">{{ts.trPK('userProfile','empNo')}}</p>
|
||||
|
||||
<span class="Boldtext">{{EmpNum}}</span>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="employee-information-indetail">
|
||||
<ion-row style="padding-left: 13px;">
|
||||
<ion-col>
|
||||
<p style="font-size: 16px; font-family: WorkSans-Bold; margin-top: 15px;">{{ts.trPK('userProfile','profile-details')}}</p>
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','category')}}</h2>
|
||||
<p>{{EmpCatMeaning}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','address')}}</h2>
|
||||
<p>{{EmpLocation}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','phone-no')}}</h2>
|
||||
<p>{{EmpMobile}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','busG')}}</h2>
|
||||
<p>{{EmpOrgName}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','job')}}</h2>
|
||||
<p>{{EmpJob}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','payrol')}}</h2>
|
||||
<p>{{EmpPayrol}}</p>
|
||||
</ion-col>
|
||||
|
||||
<ion-col [size]="12">
|
||||
<h2>{{ts.trPK('userProfile','position')}}</h2>
|
||||
<p>{{EmpPosition}}</p>
|
||||
|
||||
</ion-col>
|
||||
<ion-col [size]="12" style="border-bottom: none;">
|
||||
<h2>{{ts.trPK('userProfile','grade')}}</h2>
|
||||
<p>{{EmpGRADENAME}}</p>
|
||||
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
<div>
|
||||
<ion-button class="sendCodeBtn" (click)="createRequest()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ///////////////////////////////////////////////////////////////////next page -->
|
||||
|
||||
<!-- <div>
|
||||
<div class="verify-code">
|
||||
<ion-row style=" margin-left: 9px; margin-bottom: 13px;">
|
||||
<ion-col style="font-size: 12px; color: rgb(128, 124, 124);">{{ts.trPK('userProfile','code-sent')}}</ion-col>
|
||||
<ion-col class="Boldtext"> {{EmpMobile}}</ion-col>
|
||||
</ion-row>
|
||||
|
||||
<ion-row dir="ltr">
|
||||
<ion-col [size]="12">
|
||||
<ion-input type="tel" maxLength="1" size="1" min="0" max="9" pattern="[0-9]{1}"
|
||||
inputmode="tel" (ionInput)="goToNextInput($event)" (ionChange)="onChange()" #ref autofocus="true">
|
||||
</ion-input>
|
||||
|
||||
<ion-input type="tel" maxLength="1" size="1" min="0" max="9" pattern="[0-9]{1}"
|
||||
inputmode="tel" (ionInput)="goToNextInput($event)" (ionChange)="onChange()"></ion-input>
|
||||
<ion-input type="tel" maxLength="1" size="1" min="0" max="9" pattern="[0-9]{1}"
|
||||
inputmode="tel" (ionInput)="goToNextInput($event)" (ionChange)="onChange()"></ion-input>
|
||||
<ion-input type="tel" maxLength="1" size="1" min="0" max="9" pattern="[0-9]{1}"
|
||||
inputmode="tel" (ionInput)="goToNextInput($event)" (ionChange)="onChange()"></ion-input>
|
||||
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
<div>
|
||||
<ion-button class="sendVerifyBtn" (click)="VerifyCode()" >{{ts.trPK('userProfile','verify-code')}}</ion-button>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
|
||||
|
||||
<!-- ///////////////////////////////////////////////////////////////////next page -->
|
||||
|
||||
<div *ngIf="showRequestDetails" class="result-serviceType">
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','ServiceType')}}</span>
|
||||
</div>
|
||||
<div>
|
||||
<ion-row class="custom-radio">
|
||||
<ion-radio-group (ionChange)="showSelectedField($event)" class="radio-list">
|
||||
|
||||
<ion-radio value="HR Services" [color]="myColor">HR Services</ion-radio>
|
||||
<ion-label class="text-label" >HR Services</ion-label>
|
||||
|
||||
<ion-radio value="Complaints" [color]="myColor" >Complaints</ion-radio>
|
||||
<ion-label class="text-label">Complaints</ion-label>
|
||||
|
||||
<ion-radio value="Inquiry" [color]="myColor" >Inquiry</ion-radio>
|
||||
<ion-label class="text-label">Inquiry</ion-label>
|
||||
|
||||
</ion-radio-group>
|
||||
</ion-row>
|
||||
</div>
|
||||
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','DeptName')}}</span>
|
||||
</div>
|
||||
<div class="filed">
|
||||
<label class="selectLabel">Select Department</label>
|
||||
</div>
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','RelatedSection')}}</span>
|
||||
</div>
|
||||
<div class="filed">
|
||||
<label class="selectLabel">Select Section</label>
|
||||
</div>
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','RelatedTopic')}}</span>
|
||||
</div>
|
||||
<div class="filed">
|
||||
<label class="selectLabel">Select Topic</label>
|
||||
</div>
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','SupportingDocument')}}</span>
|
||||
</div>
|
||||
<div style="margin-left: 15px; margin-top: 12px;">
|
||||
<img (click)="uploadDocument()" src="../assets/imgs/add-photo.svg">
|
||||
</div>
|
||||
<div class="request-heading">
|
||||
<span>{{ts.trPK('userProfile','Description')}}</span>
|
||||
</div>
|
||||
<div class="filedDesc">
|
||||
<label class="labelDesc">Description</label>
|
||||
</div>
|
||||
|
||||
<ion-row style="margin-left: 5px;">
|
||||
<div class="cancelRequest">
|
||||
<ion-button (click)="cancelRequest()">Cancel
|
||||
</ion-button>
|
||||
</div>
|
||||
<div class="submitRequest">
|
||||
<ion-button (click)="submitRequest()">Submit
|
||||
</ion-button>
|
||||
</div>
|
||||
</ion-row>
|
||||
</div>
|
||||
|
||||
</ion-content>
|
||||
@ -0,0 +1,328 @@
|
||||
|
||||
|
||||
.header-toolbar-new{
|
||||
--background: #269DB8;
|
||||
}
|
||||
|
||||
.contentBg{
|
||||
padding: 0px 20px;
|
||||
}
|
||||
|
||||
.contentBg:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
background: #269DB8;
|
||||
height: 140px;
|
||||
width: 100%;
|
||||
left: 0;
|
||||
top: 0px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1px) and (max-width:767px){
|
||||
.result-graph {
|
||||
position: relative;
|
||||
background: white;
|
||||
// margin-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
border-radius: 20px;
|
||||
z-index: 1;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 56px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
padding-top: 12px;
|
||||
}}
|
||||
|
||||
@media screen and (min-width: 768px) and (max-width:1024px){
|
||||
.result-graph {
|
||||
position: relative;
|
||||
background: white;
|
||||
// margin-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
border-radius: 20px;
|
||||
z-index: 1;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 89px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
padding-top: 114px !important;
|
||||
}}
|
||||
|
||||
.user-info{
|
||||
text-align: center;
|
||||
margin-bottom: 3px;
|
||||
.user-image-container{
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 24px;
|
||||
justify-content: space-between;
|
||||
display: flex;
|
||||
margin: 0 auto;
|
||||
align-items: center;
|
||||
}}
|
||||
|
||||
.Boldtext{
|
||||
font-size: 13px;
|
||||
font-family: WorkSans-Bold;
|
||||
color: black !important;
|
||||
display: block !important;
|
||||
// line-height: 0px !important;
|
||||
}
|
||||
|
||||
.Nametext{
|
||||
font-size: 15px;
|
||||
font-family: WorkSans-Bold;
|
||||
color: black !important;
|
||||
display: block !important;
|
||||
// line-height: 0px !important;
|
||||
}
|
||||
|
||||
.employee-information-indetail{
|
||||
background: white;
|
||||
margin-top: 15px;
|
||||
border-radius: 20px;
|
||||
margin-bottom: 15px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
ion-col{
|
||||
padding: 15px;
|
||||
// border-bottom: 1px solid #ccc;
|
||||
}
|
||||
h2{
|
||||
font-size: 13px;
|
||||
// font-family: WorkSans-Bold;
|
||||
margin: 0;
|
||||
font-weight: bold;
|
||||
color: rgb(128, 124, 124);
|
||||
}
|
||||
p{
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
font-family: WorkSans-Bold;
|
||||
// margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1px) and (max-width:767px){
|
||||
.user-image{
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
border-radius: 80px;
|
||||
/* border: 1px solid #ccc; */
|
||||
margin-top: -125px;
|
||||
|
||||
}}
|
||||
@media screen and (min-width: 768px) and (max-width:1024px){
|
||||
.user-image{
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
border-radius: 80px;
|
||||
margin-bottom: 371px;
|
||||
}}
|
||||
|
||||
.img{
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: inline-flex;
|
||||
overflow: hidden;
|
||||
background: transparent;
|
||||
border-radius: 70% !important;
|
||||
position: relative;
|
||||
top: 3px;
|
||||
}
|
||||
|
||||
.sendCodeBtn{
|
||||
--background: #269DB8;
|
||||
color: white;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-left: 5px !important;
|
||||
margin-top: 15px !important;
|
||||
margin-bottom: 20px !important;
|
||||
/* border-radius: 4px; */
|
||||
height: 26px;
|
||||
/* padding: 6px 24px; */
|
||||
font-size: 15px;
|
||||
width: 322px;
|
||||
}
|
||||
|
||||
.verify-code{
|
||||
position: relative;
|
||||
background: white;
|
||||
border-radius: 20px;
|
||||
z-index: 1;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
padding: 21px 3px 34px 14px;
|
||||
margin: 25px 22px 2px 22px;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// .sms_code{
|
||||
// margin: 0px;
|
||||
// text-align: center;
|
||||
// }
|
||||
|
||||
ion-input {
|
||||
margin: 0 5px;
|
||||
text-align: center;
|
||||
line-height: 0;
|
||||
font-size: 32px;
|
||||
//border: solid 1px #ccc;
|
||||
border: 1px solid #ccc !important;
|
||||
//box-shadow: 0 0 5px #ccc inset;
|
||||
outline: none;
|
||||
width: 20%;
|
||||
transition: all .2s ease-in-out;
|
||||
border-radius: 3px;
|
||||
display: inline-block;
|
||||
&:focus {
|
||||
border-color:var(--ion-color-secondary) !important;
|
||||
box-shadow: 0 0 5px var(--ion-color-secondary) !important;
|
||||
}
|
||||
|
||||
&::selection {
|
||||
background: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.sendVerifyBtn{
|
||||
--background: #269DB8;
|
||||
color: white;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-top: 15px !important;
|
||||
margin-bottom: 20px !important;
|
||||
/* border-radius: 4px; */
|
||||
height: 26px;
|
||||
font-size: 15px;
|
||||
width: 322px;
|
||||
margin-left: 22px;
|
||||
}
|
||||
|
||||
.custom-radio .radio-icon {
|
||||
margin: 0px;
|
||||
border-radius: 50%;
|
||||
border-width: var(--border-width);
|
||||
border-style: var(--border-style);
|
||||
border-color: #dcdcdc;
|
||||
margin-top: 6px !important;
|
||||
border-color: #d8d4d4 !important;
|
||||
margin-bottom: 18px;}
|
||||
|
||||
.text-label{
|
||||
color: black !important;
|
||||
font-size: 10px;
|
||||
margin-left: 15px;
|
||||
margin-right: 18px;
|
||||
font-family: 'WorkSans-Bold';
|
||||
}
|
||||
|
||||
.radio-list{
|
||||
background: white;
|
||||
margin-left: 18px;
|
||||
/* margin-right: 10px; */
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.result-serviceType{
|
||||
position: relative;
|
||||
background: white;
|
||||
padding-bottom: 20px;
|
||||
border-radius: 20px;
|
||||
z-index: 1;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #ccc;
|
||||
padding-top: 12px;
|
||||
margin: 25px 22px 2px 22px;
|
||||
padding-bottom: 241px;
|
||||
}
|
||||
|
||||
.request-heading {
|
||||
span {
|
||||
display: block;
|
||||
padding-top: 8px;
|
||||
padding-left: 15px;
|
||||
/* font-weight: bold; */
|
||||
font-size: 14px;
|
||||
font-family: 'WorkSans-Bold';
|
||||
}
|
||||
}
|
||||
|
||||
.filed{
|
||||
border-radius: 30px;
|
||||
border: 1px solid #d3d5d5 !important;
|
||||
margin: 10px;
|
||||
padding-left: 11px !important;
|
||||
padding-top: 6px !important;
|
||||
color: #636161;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
.filedDesc{
|
||||
border-radius: 30px;
|
||||
border: 1px solid #d3d5d5 !important;
|
||||
margin: 10px;
|
||||
padding-left: 11px !important;
|
||||
padding-top: 6px !important;
|
||||
color: #636161;
|
||||
padding-bottom: 110px;
|
||||
}
|
||||
|
||||
.labelDesc{
|
||||
display: block;
|
||||
padding-top: 8px;
|
||||
padding-left: 15px;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
color: #adabab;
|
||||
}
|
||||
|
||||
.selectLabel{
|
||||
display: block;
|
||||
padding-top: 8px;
|
||||
padding-left: 15px;
|
||||
font-size: 14px;
|
||||
/* font-family: 'WorkSans-Bold'; */
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.cancelRequest{
|
||||
padding: 10px 0px 10px 10px;
|
||||
ion-button{
|
||||
border-radius: 7px;
|
||||
padding: 12px 25px 12px 25px;
|
||||
background: #d00a0a;
|
||||
--background: transparent;
|
||||
--box-shadow: none !important;
|
||||
height: auto;
|
||||
min-height: inherit;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.submitRequest{
|
||||
padding: 10px 10px 10px 1px;
|
||||
ion-button{
|
||||
border-radius: 7px;
|
||||
padding: 12px 25px 12px 25px;
|
||||
background: #19a163;
|
||||
--background: transparent;
|
||||
--box-shadow: none !important;
|
||||
height: auto;
|
||||
min-height: inherit;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { HRRequestComponent } from './hr-request.component';
|
||||
|
||||
describe('HRRequestComponent', () => {
|
||||
let component: HRRequestComponent;
|
||||
let fixture: ComponentFixture<HRRequestComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ HRRequestComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(HRRequestComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,131 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Platform, Events, MenuController } from '@ionic/angular';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
|
||||
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
|
||||
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
|
||||
import { MyTeamService } from '../service/my-team.service';
|
||||
import { Location } from '@angular/common';
|
||||
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
|
||||
import { LoginModel } from 'src/app/authentication/models/LoginModel';
|
||||
import { SendActivationByType } from 'src/app/authentication/models/sendActivationByType';
|
||||
|
||||
@Component({
|
||||
selector: 'app-hr-request',
|
||||
templateUrl: './hr-request.component.html',
|
||||
styleUrls: ['./hr-request.component.scss'],
|
||||
})
|
||||
export class HRRequestComponent implements OnInit {
|
||||
|
||||
public EmpName : string;
|
||||
public EmpNum : string;
|
||||
public EmpGroup : string;
|
||||
public EmpMobile : string;
|
||||
public EmpJob : string;
|
||||
public EmpOrgName : string;
|
||||
public EmpPayrol : string;
|
||||
public EmpPosition : string;
|
||||
public EmpEmail: string;
|
||||
public EmpCatMeaning:string;
|
||||
public EmpGRADENAME : string;
|
||||
public EmpLocation : string;
|
||||
public EmpImg : string;
|
||||
public userImage: any = '../assets/imgs/profile.png';
|
||||
public loginData = new LoginModel();
|
||||
public searchKeySelect = 'Complaints';
|
||||
myColor: string = 'secondary';
|
||||
public showRequestDetails = false;
|
||||
|
||||
|
||||
public direction: string;
|
||||
constructor(
|
||||
public ts: TranslatorService,
|
||||
public cs: CommonService,
|
||||
public authService: AuthenticationService,
|
||||
public sharedData: SharedDataService,
|
||||
public events: Events,
|
||||
public myTeamService: MyTeamService,
|
||||
private location: Location,
|
||||
private menu: MenuController,
|
||||
|
||||
) {
|
||||
this.direction = TranslatorService.getCurrentDirection();
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.getUserInformation();
|
||||
|
||||
}
|
||||
|
||||
goback() {
|
||||
this.location.back();
|
||||
|
||||
}
|
||||
|
||||
getUserInformation(){
|
||||
const request = {
|
||||
P_SELECTED_EMPLOYEE_NUMBER:"121816",
|
||||
P_SELECTED_RESP_ID:-999,
|
||||
P_PAGE_NUM:1,
|
||||
P_PAGE_LIMIT:1
|
||||
|
||||
};
|
||||
this.myTeamService.getUserInfo(request, ()=> {} , this.ts.trPK('general', 'retry')).subscribe((result)=>
|
||||
{
|
||||
this.handleUserInfoResult(result);
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
handleUserInfoResult(result){
|
||||
this.EmpName = result.MemberInformationList[0].EMPLOYEE_NAME;
|
||||
console.log("____________" + this.EmpName);
|
||||
this.EmpNum = result.MemberInformationList[0].EMPLOYEE_NUMBER;
|
||||
this.EmpGroup = result.MemberInformationList[0].BUSINESS_GROUP_NAME;
|
||||
this.EmpMobile = result.MemberInformationList[0].EMPLOYEE_MOBILE_NUMBER;
|
||||
this.EmpJob = result.MemberInformationList[0].JOB_NAME;
|
||||
this.EmpOrgName = result.MemberInformationList[0].ORGANIZATION_NAME;
|
||||
this.EmpPayrol = result.MemberInformationList[0].PAYROLL_NAME;
|
||||
this.EmpPosition = result.MemberInformationList[0].POSITION_NAME;
|
||||
this.EmpEmail = result.MemberInformationList[0].EMPLOYEE_EMAIL_ADDRESS;
|
||||
this.EmpCatMeaning = result.MemberInformationList[0].EMPLOYMENT_CATEGORY_MEANING;
|
||||
this.EmpGRADENAME = result.MemberInformationList[0].GRADE_NAME;
|
||||
this.EmpLocation = result.MemberInformationList[0].LOCATION_NAME;
|
||||
this.EmpImg = result.MemberInformationList[0].EMPLOYEE_IMAGE
|
||||
// console.log("total no "+this.EmpTotal)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// public sendActivationCode() {
|
||||
|
||||
// }
|
||||
|
||||
|
||||
// VerifyCode(){
|
||||
|
||||
// }
|
||||
createRequest(){
|
||||
if(this.showRequestDetails){
|
||||
this.showRequestDetails = false
|
||||
|
||||
}else{
|
||||
this.showRequestDetails = true
|
||||
}}
|
||||
|
||||
|
||||
public cancelRequest() {
|
||||
this.cs.openMyRequestPage();
|
||||
this.menu.toggle();
|
||||
}
|
||||
|
||||
submitRequest(){
|
||||
|
||||
}
|
||||
|
||||
uploadDocument(){
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
|
||||
|
||||
<ion-header>
|
||||
<ion-toolbar class="header-toolbar-new">
|
||||
<ion-buttons slot="start">
|
||||
<nav-buttons (backClick)="goback()" [navigate]="false"></nav-buttons>
|
||||
</ion-buttons>
|
||||
<ion-title style=" color:white; text-align: center;">{{ts.trPK('userProfile','MyHR-request')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
<ion-content>
|
||||
<div>
|
||||
<ion-row [ngClass]="direction == 'en' ? 'empty-en':'empty-ar' ">{{ts.trPK('general','empty')}}</ion-row>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
||||
<ion-footer>
|
||||
<div>
|
||||
<ion-button class="sendCodeBtn" (click)="openHRRequestPage()" >{{ts.trPK('userProfile','createHR-Request')}}</ion-button>
|
||||
</div>
|
||||
</ion-footer>
|
||||
@ -0,0 +1,33 @@
|
||||
|
||||
|
||||
.sendCodeBtn{
|
||||
--background: #269DB8;
|
||||
color: white;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
margin-left: 23px !important;
|
||||
margin-top: 15px !important;
|
||||
margin-bottom: 20px !important;
|
||||
/* border-radius: 4px; */
|
||||
height: 26px;
|
||||
/* padding: 6px 24px; */
|
||||
font-size: 15px;
|
||||
width: 322px;
|
||||
}
|
||||
|
||||
.empty-en{
|
||||
color: black;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
font-family: WorkSans-Bold;
|
||||
margin: 50px 0px 0px 100px;
|
||||
}
|
||||
.empty-ar{
|
||||
color: black;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
font-family: WorkSans-Bold;
|
||||
margin: 50px 100px 0px 0px;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { MyRequestComponent } from './my-request.component';
|
||||
|
||||
describe('MyRequestComponent', () => {
|
||||
let component: MyRequestComponent;
|
||||
let fixture: ComponentFixture<MyRequestComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ MyRequestComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(MyRequestComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,46 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { Platform, Events, MenuController } from '@ionic/angular';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
|
||||
import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user';
|
||||
import { SharedDataService } from 'src/app/hmg-common/services/shared-data-service/shared-data.service';
|
||||
import { MyTeamService } from '../service/my-team.service';
|
||||
import { Location } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'app-my-request',
|
||||
templateUrl: './my-request.component.html',
|
||||
styleUrls: ['./my-request.component.scss'],
|
||||
})
|
||||
export class MyRequestComponent implements OnInit {
|
||||
public direction : String;
|
||||
|
||||
|
||||
constructor(
|
||||
public ts: TranslatorService,
|
||||
public cs: CommonService,
|
||||
public authService: AuthenticationService,
|
||||
public sharedData: SharedDataService,
|
||||
public events: Events,
|
||||
public myTeamService: MyTeamService,
|
||||
private location: Location,
|
||||
private menu: MenuController,
|
||||
|
||||
) {
|
||||
this.direction = TranslatorService.getCurrentLanguageName();
|
||||
}
|
||||
|
||||
ngOnInit() {}
|
||||
|
||||
goback() {
|
||||
this.location.back();
|
||||
|
||||
}
|
||||
|
||||
public openHRRequestPage() {
|
||||
this.cs.openHRRequestPage();
|
||||
this.menu.toggle();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
|
||||
.disabledButton{
|
||||
opacity:.5;
|
||||
|
||||
}
|
||||
|
||||
.radio-label{
|
||||
margin: 4px;
|
||||
position: relative;
|
||||
bottom: 4px;
|
||||
}
|
||||
ion-radio{
|
||||
--color-checked: #269db8;
|
||||
}
|
||||
.center{text-align: center;}
|
||||
.boldTxtNav{
|
||||
font-weight: bold;
|
||||
}
|
||||
.employee-details{
|
||||
display:inline-block;
|
||||
margin: 10px;
|
||||
}
|
||||
.empImgeRep{
|
||||
display: inline-block;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
}
|
||||
.star-fav{
|
||||
float: right;
|
||||
margin: 15px;
|
||||
}
|
||||
.uk-margin{margin: 15px 0px 0px 15px;
|
||||
font-weight: bold;
|
||||
clear: both;
|
||||
position: relative;
|
||||
top: 10px;}
|
||||
.uk-padding{ padding: 20px;}
|
||||
.uk-padding .employee-details{
|
||||
bottom: 10px;
|
||||
position: relative;}
|
||||
|
||||
.filterInput{
|
||||
border: solid var(--gray) 1px;
|
||||
border-radius: 21px;
|
||||
padding-left: 10px !important;
|
||||
}
|
||||
.filterInput-ar{
|
||||
|
||||
border: solid var(--gray) 1px;
|
||||
border-radius: 21px;
|
||||
--padding-start: 10px !important;
|
||||
|
||||
}
|
||||
.square-container{
|
||||
width:100%;
|
||||
clear: both;
|
||||
}
|
||||
.square{
|
||||
clear: both;
|
||||
}
|
||||
@ -0,0 +1,451 @@
|
||||
<app-generic-header *ngIf="!messageSuccess" showBack="true" backLink="/notification/homepage"
|
||||
[headerText]="'worklistMain,title' | translate">
|
||||
</app-generic-header>
|
||||
|
||||
<ion-content class="colorBG">
|
||||
<div *ngIf="!messageSuccess">
|
||||
<div class="subjectNotification">{{getPassNotificationDetails.SUBJECT}}</div>
|
||||
|
||||
<!-- add segemnt part -->
|
||||
<ion-segment mode="md" color="secondary" (ionChange)="segmentChanged($event)" [value]="activeSegment"
|
||||
class="ion-segment-all">
|
||||
|
||||
<ion-segment-button value="line_details"
|
||||
[ngClass]="activeSegment == 'line_details' ? 'active-Segment' : 'normal-Segment'">
|
||||
<ion-label class="no-padding-label margin-left"> {{'worklistMain,itemReq'| translate}} </ion-label>
|
||||
|
||||
</ion-segment-button>
|
||||
<ion-segment-button value="action-history"
|
||||
[ngClass]="activeSegment == 'action-history' ? 'active-Segment' : 'normal-Segment'">
|
||||
<ion-label class="no-padding-label"> {{'worklistMain, action' | translate}} </ion-label>
|
||||
</ion-segment-button>
|
||||
|
||||
<ion-segment-button value="attach" [ngClass]="activeSegment == 'attach' ? 'active-Segment' : 'normal-Segment'">
|
||||
<ion-label class="no-padding-label"> {{'worklistMain, attach-file' | translate}}
|
||||
</ion-label>
|
||||
|
||||
</ion-segment-button>
|
||||
<ion-segment-button checked value="info"
|
||||
[ngClass]="activeSegment == 'info' ? 'active-Segment' : 'normal-Segment'">
|
||||
<ion-label class="no-padding-label"> {{'worklistMain, info'| translate}} </ion-label>
|
||||
</ion-segment-button>
|
||||
</ion-segment>
|
||||
|
||||
<ion-slides #slides (ionSlideDidChange)="slideChanged($event)">
|
||||
<ion-slide>
|
||||
<ng-container *ngIf="activeSegment === 'line_details'">
|
||||
<div [hidden]="POLines && POLines.length > 0" style="width: 100% !important">
|
||||
<p>{{ 'general, empty' | translate}}</p>
|
||||
</div>
|
||||
<accordin-custom style="width: 100% !important">
|
||||
<accordin-tab-custom *ngFor="let header of POLines; let i=index;" [header]="header.PRODUCT_DESCRIPTION"
|
||||
[show]="i === 0 ? true: false">
|
||||
<div class="itemReqDiv">
|
||||
<ion-grid>
|
||||
<ion-row>
|
||||
<ion-col>
|
||||
<div *ngIf="pInformation && pInformation != '' " class="tipsPadding">{{pInformation}}</div>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row>
|
||||
<ion-col>
|
||||
<ion-grid style="text-align: left">
|
||||
<div>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, product-name'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.PRODUCT_NAME}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, product-description'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.PRODUCT_DESCRIPTION}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col size="6" [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, Unit-price'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.UNIT_PRICE}} </label>
|
||||
</ion-col>
|
||||
<ion-col size="6">
|
||||
<label class="colItemReq" for="">{{'worklist, manufacturer-name'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.USER_MANUFACTURER_NAME}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, manufacturer-part-number'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.USER_MFG_PART_NUM}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, supplier-name'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.SUPPLIER_NAME}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, supplier-contact'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.SUPPLIER_CONTACT}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, charge-to-patient'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.CHARGE_TO_PATIENT}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, justification'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.JUSTIFICATION}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, item-code'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.ITEM_CODE}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, item-description'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.ITEM_DESCRIPTION}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, group-code'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.ITEM_GROUP_CODE}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, group-description'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.ITEM_GROUP}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, subgroup-code'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.ITEM_SUBGROUP_CODE}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, subgroup-description'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.ITEM_SUBGROUP}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, primary-uom'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.PRIMARY_UOM}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, manufacturer-name'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.STANDARD_MANUFACTURER_NAME}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, manufacturer-part-number'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.STANDARD_MFG_PART_NUM}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, template-name'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.TEMPLATE_NAME}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, item-creation-status'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.ITEM_CREATION_STATUS_DISP}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, standardization-approval-status'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.STANDARD_STATUS}} </label>
|
||||
</ion-col>
|
||||
<ion-col>
|
||||
<label class="colItemReq" for="">{{'worklist, standardization-approval-rejection-reason'| translate}}</label>
|
||||
<br />
|
||||
<label for="">{{header.STANDARD_REJECT_REASON}} </label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
<br />
|
||||
</ion-grid>
|
||||
<button ion-button *ngIf="!IsReachEnd" class="itemHISBtn" (click)="loadMoreNotificationBody()">
|
||||
{{ 'general, load-more' | translate}}
|
||||
</button>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</ion-grid>
|
||||
</div>
|
||||
</accordin-tab-custom>
|
||||
</accordin-custom>
|
||||
|
||||
</ng-container>
|
||||
</ion-slide>
|
||||
|
||||
<ion-slide>
|
||||
<ng-container *ngIf="activeSegment === 'action-history'">
|
||||
|
||||
<ion-card class="cardContent" style="width: 100%;">
|
||||
<ion-card-content>
|
||||
|
||||
<div class="noDataDiv" [hidden]="actionHistoryRes && actionHistoryRes.length > 0">
|
||||
<p>{{ 'general, empty' | translate}}</p>
|
||||
</div>
|
||||
<div *ngIf="actionHistoryRes && actionHistoryRes.length > 0 ">
|
||||
<ion-list class="notification-list ">
|
||||
<div class="timeline">
|
||||
<ion-item *ngFor="let actionHistory of actionHistoryRes">
|
||||
|
||||
<div class="timeline-item" slot="start">
|
||||
<div
|
||||
[class]="direction == 'en'? 'timeline-thumb-en timeline-icon': 'timeline-thumb-ar timeline-icon'">
|
||||
<img *ngIf="actionHistory.EMPLOYEE_IMAGE" class="empImge"
|
||||
[src]="'data:image/png;base64,'+actionHistory.EMPLOYEE_IMAGE">
|
||||
<img *ngIf="actionHistory.EMPLOYEE_IMAGE == null" class="empImge"
|
||||
src="../assets/imgs/profile.png"> </div>
|
||||
</div>
|
||||
<ion-col size="8">
|
||||
<ion-label class="name">
|
||||
{{actionHistory.NAME}}
|
||||
</ion-label>
|
||||
|
||||
<div *ngIf="actionHistory.NOTE != '' ">
|
||||
<div *ngIf="!checkLines(actionHistory.NOTE)">
|
||||
<div class="containerNote">
|
||||
Note: {{actionHistory.NOTE}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div *ngIf="checkLines(actionHistory.NOTE)">
|
||||
|
||||
<div class="containerNote"
|
||||
[ngClass]="actionHistory.visible ? 'show' : '' ">
|
||||
Note: {{actionHistory.NOTE}}
|
||||
|
||||
|
||||
</div>
|
||||
<button class="showMore"
|
||||
(click)="actionHistory.visible = !actionHistory.visible">{{ actionHistory.visible ? 'Show less': 'Show More' }}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<ion-label
|
||||
[ngClass]="{'bg-blue-txt' : actionHistory.ACTION_CODE === 'SUBMIT' ,'bg-orange-txt' : actionHistory.ACTION_CODE === 'PENDING' ,'bg-red-txt' : actionHistory.ACTION_CODE === 'REJECT','bg-green-txt' : actionHistory.ACTION_CODE != 'PENDING' && actionHistory.ACTION_CODE != 'REJECT' && actionHistory.ACTION_CODE != 'SUBMIT'}"
|
||||
class=""> {{actionHistory.ACTION}}</ion-label>
|
||||
|
||||
|
||||
<ion-label *ngIf="actionHistory.NOTIFICATION_DATE != ''"
|
||||
class="dateActionHistory">
|
||||
{{actionHistory.NOTIFICATION_DATE| dateString }} </ion-label>
|
||||
</ion-col>
|
||||
<ion-col size="4">
|
||||
<img class="req_info" src="assets/imgs/req info.svg" (click)="openRequestInfoDel(actionHistory, 'REQUEST_INFO')" />
|
||||
<img class="req_info" src="assets/imgs/delegate.svg" (click)="openRequestInfoDel(actionHistory, 'DELEGATE')"/>
|
||||
|
||||
</ion-col>
|
||||
<div class="line"></div>
|
||||
</ion-item>
|
||||
</div>
|
||||
</ion-list>
|
||||
</div>
|
||||
|
||||
<button ion-button *ngIf="!IsReachEnd" class="itemHISBtn" (click)="loadMoreActionHistory()">
|
||||
{{ 'general, load-more' | translate}}
|
||||
</button>
|
||||
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
|
||||
</ng-container>
|
||||
</ion-slide>
|
||||
|
||||
<ion-slide>
|
||||
<ng-container *ngIf="activeSegment === 'attach'">
|
||||
<ion-card class="cardContent" style="width: 100% i !important;">
|
||||
<ion-card-content>
|
||||
<div class="noDataDiv" [hidden]="attachmentRes && attachmentRes.length > 0">
|
||||
<p>{{ 'general, notAttch' | translate}}</p>
|
||||
</div>
|
||||
<div *ngIf="attachmentRes && attachmentRes.length > 0 ">
|
||||
|
||||
<ion-grid>
|
||||
<ion-item class="itemAttch" *ngFor="let attachList of attachmentRes ; let i=index;">
|
||||
<ion-label style="color: black !important">
|
||||
{{i+1}}. {{attachList.FILE_NAME}} </ion-label>
|
||||
|
||||
<button float-end class="attachImgBtn"
|
||||
(click)="OpenAttachFiles(attachList.FILE_DATA,attachList.FILE_CONTENT_TYPE)">
|
||||
<img class="attachImg" src="../assets/imgs/view.png">
|
||||
</button>
|
||||
|
||||
</ion-item>
|
||||
|
||||
</ion-grid>
|
||||
|
||||
|
||||
</div>
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
</ng-container>
|
||||
</ion-slide>
|
||||
|
||||
<ion-slide>
|
||||
<ng-container *ngIf="activeSegment === 'info'">
|
||||
|
||||
|
||||
<ion-grid>
|
||||
<div *ngFor="let Lines of POHeader">
|
||||
<ion-card class="cardContent" style="width: 90% i !important;">
|
||||
<ion-card-content>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col class="colItems" [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, operating-unit'| translate}}</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.OPERATING_UNIT}} </ion-label>
|
||||
</ion-col>
|
||||
<ion-col class="colItems ">
|
||||
<label class="colItemReq" for="">{{'worklist, category'| translate}}
|
||||
</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.CATEGORY}}</ion-label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col class="colItems " [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, requester'| translate}}
|
||||
</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.REQUESTER}} </ion-label>
|
||||
</ion-col>
|
||||
<ion-col class="colItems">
|
||||
<label class="colItemReq" for="">{{'worklist, analyzed-by'| translate}}</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.ANALYZED_BY}} </ion-label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col class="colItems" [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, approved-date'| translate}}
|
||||
</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.APPROVED_DATE}} </ion-label>
|
||||
</ion-col>
|
||||
<ion-col class="colItems">
|
||||
<label class="colItemReq" for="">{{'worklist, item-type'| translate}}</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.ITEM_TYPE}} </ion-label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col class="colItems" [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, related-to'| translate}}
|
||||
</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.RELATED_TO}} </ion-label>
|
||||
</ion-col>
|
||||
<ion-col class="colItems">
|
||||
<label class="colItemReq" for="">{{'worklist, request-date'| translate}}</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.REQUEST_DATE| date}}
|
||||
</ion-label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row class="rowBorder">
|
||||
<ion-col class="colItems" [ngClass]=" direction === 'en' ? 'colBorder' :'colBorder-ar' ">
|
||||
<label class="colItemReq" for="">{{'worklist, analyzed-date'| translate}}</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.ANALYZED_DATE| date}} </ion-label>
|
||||
</ion-col>
|
||||
<ion-col class="colItems">
|
||||
<label class="colItemReq" for="">{{'worklist, urgent'| translate}}</label>
|
||||
<br />
|
||||
<ion-label class="labelValue" for="">{{Lines.URGENT_FLAG_DISP}} </ion-label>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
</div>
|
||||
</ion-grid>
|
||||
</ng-container>
|
||||
</ion-slide>
|
||||
</ion-slides>
|
||||
|
||||
<ion-row>
|
||||
<ion-col col-12>
|
||||
<div id="notificationDynamicFieldsPO">
|
||||
</div>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
<div *ngIf="messageSuccess" class="succssfullMSG">
|
||||
<ion-col size="12">
|
||||
<ion-icon class="succssfullIcon" name="checkmark"></ion-icon>
|
||||
</ion-col>
|
||||
<ion-col size="12">
|
||||
<div style="font-size: 30px !important"> {{'worklistMain, Tran_Succ' | translate}}</div>
|
||||
</ion-col>
|
||||
</div>
|
||||
</ion-content>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<ion-footer *ngIf="!messageSuccess" class="footerSearchBtn">
|
||||
|
||||
<ion-tabs>
|
||||
|
||||
<ion-tab-bar class="tabBar" slot="bottom" style="height: 100% !important;">
|
||||
<ion-tab-button *ngIf="approveDis" (click)="actionButton('APPROVE')">
|
||||
<img src="../assets/imgs/mohemm-action/Approve.png">
|
||||
<ion-label class="action-btn"> {{approve_label}}</ion-label>
|
||||
|
||||
</ion-tab-button>
|
||||
|
||||
<ion-tab-button *ngIf="closeDis" (click)="actionButton('CLOSE')">
|
||||
<img src="../assets/imgs/mohemm-action/Approve.png">
|
||||
<ion-label class="action-btn"> {{close_label}}</ion-label>
|
||||
|
||||
</ion-tab-button>
|
||||
|
||||
<ion-tab-button *ngIf="rejectDis" (click)="actionButton('REJECT')">
|
||||
<img src="../assets/imgs/mohemm-action/Reject.png">
|
||||
<ion-label class="action-btn"> {{reject_label}}</ion-label>
|
||||
</ion-tab-button>
|
||||
|
||||
<ion-tab-button *ngIf="requestDis" (click)="actionButton('REQUEST_INFO')">
|
||||
<img src="../assets/imgs/mohemm-action/info.png">
|
||||
<ion-label class="action-btn"> {{reqInfo_label}}</ion-label>
|
||||
</ion-tab-button>
|
||||
<ion-tab-button (click)="nextNotfification()">
|
||||
<img src="../assets/imgs/mohemm-action/Skip.png">
|
||||
<ion-label class="action-btn"> {{'worklistMain, skip' | translate}}</ion-label>
|
||||
</ion-tab-button>
|
||||
|
||||
<ion-tab-button [disabled]="moreDisabled" (click)="openMoreActions()">
|
||||
<img src="../assets/imgs/mohemm-action/More.png">
|
||||
<ion-label class="action-btn"> {{'worklistMain, more' | translate}}</ion-label>
|
||||
</ion-tab-button>
|
||||
</ion-tab-bar>
|
||||
</ion-tabs>
|
||||
|
||||
|
||||
</ion-footer>
|
||||
@ -0,0 +1,50 @@
|
||||
|
||||
.no-padding-label {
|
||||
padding: 0px !important;
|
||||
}
|
||||
|
||||
.margin-left {
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.active-Segment {
|
||||
font-size: 0.3cm !important;
|
||||
background: #269DB8 !important;
|
||||
text-transform: none;
|
||||
--color-checked: none;
|
||||
border-radius: 100px;
|
||||
border:0;
|
||||
}
|
||||
.active-Segment ion-label{
|
||||
font-size: 11px;
|
||||
color: white !important;
|
||||
}
|
||||
.normal-Segment ion-label{
|
||||
color: black !important;
|
||||
font-size: 11px;
|
||||
}
|
||||
.normal-Segment {
|
||||
font-size: 0.3cm !important;
|
||||
text-transform: none;
|
||||
--color-checked: none;
|
||||
border: 0;
|
||||
}
|
||||
.action-btn {
|
||||
white-space: nowrap;
|
||||
font-size: 10px;
|
||||
}
|
||||
.name{
|
||||
color:black !important ;font-weight: bold;
|
||||
}
|
||||
.timeline-item{
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
font-size: 10px;
|
||||
}
|
||||
.req_info{
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
display: inline-block;
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { WorklistMainIcComponent } from './worklist-main-ic.component';
|
||||
|
||||
describe('WorklistMainIcComponent', () => {
|
||||
let component: WorklistMainIcComponent;
|
||||
let fixture: ComponentFixture<WorklistMainIcComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ WorklistMainIcComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(WorklistMainIcComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,144 @@
|
||||
<ion-content>
|
||||
<div class="head-title">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<ion-buttons slot="start">
|
||||
<ion-back-button color="light" class="btnBack" defaultHref="/home"></ion-back-button>
|
||||
</ion-buttons>
|
||||
<ion-title color="light" >{{ts.trPK('itemforsale','title')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</div>
|
||||
<div class="header"></div>
|
||||
<div class="bottom"></div>
|
||||
|
||||
|
||||
<div class="sales-items" *ngIf="segment =='1'">
|
||||
<ion-grid>
|
||||
<ion-row>
|
||||
|
||||
<ion-col size="12">
|
||||
<ion-item lines="none" class="SearchtextBox">
|
||||
<ion-input placeholder="Search Item"></ion-input>
|
||||
</ion-item>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
<ion-row>
|
||||
<ion-col size="10">
|
||||
<p class="filterText">Browse Category</p>
|
||||
</ion-col>
|
||||
<ion-col size="2">
|
||||
<img src="assets/imgs/itemsforsale/filter.svg">
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</ion-grid>
|
||||
|
||||
<div class="container-icon">
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="box-icon">
|
||||
<div class="sale-icon">
|
||||
<div class="top">
|
||||
<ion-icon name="images"></ion-icon>
|
||||
</div>
|
||||
<div class="bottom-icon">
|
||||
<p>Mobile & Tablets</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ion-row>
|
||||
<ion-col size="6" (click)="openDetails()">
|
||||
<ion-card>
|
||||
<ion-card-header>
|
||||
<img src="assets/imgs/itemsforsale/furniture.svg" />
|
||||
|
||||
<ion-card-title>Card Title</ion-card-title>
|
||||
</ion-card-header>
|
||||
|
||||
<ion-card-content>
|
||||
Keep close to Nature's heart... and break
|
||||
<strong class="dark">
|
||||
15% Off + Free Delivery
|
||||
</strong>
|
||||
<ion-row class="green">
|
||||
<ion-col size="10">
|
||||
Offer Valid
|
||||
</ion-col>
|
||||
<ion-col size="2">
|
||||
<ion-icon name="arrow-round-forward"></ion-icon>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
</ion-col>
|
||||
<ion-col size="6" (click)="openDetails()">
|
||||
<ion-card>
|
||||
<ion-card-header>
|
||||
<img src="assets/imgs/itemsforsale/furniture.svg" />
|
||||
|
||||
<ion-card-title>Card Title</ion-card-title>
|
||||
</ion-card-header>
|
||||
|
||||
<ion-card-content>
|
||||
Keep close to Nature's heart... and break
|
||||
<strong class="dark">
|
||||
15% Off + Free Delivery
|
||||
</strong>
|
||||
<ion-row class="green">
|
||||
<ion-col size="10">
|
||||
Offer Valid
|
||||
</ion-col>
|
||||
<ion-col size="2">
|
||||
<ion-icon name="arrow-round-forward"></ion-icon>
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
|
||||
</ion-card-content>
|
||||
</ion-card>
|
||||
|
||||
</ion-col>
|
||||
</ion-row>
|
||||
</div>
|
||||
|
||||
|
||||
</ion-content>
|
||||
|
||||
@ -0,0 +1,119 @@
|
||||
|
||||
.header{
|
||||
|
||||
width: 100%;
|
||||
|
||||
position: absolute;
|
||||
background: #259CB8;
|
||||
top: 0;
|
||||
}
|
||||
.header-toolbar{
|
||||
--background: #259CB8 !important;
|
||||
}
|
||||
.bottom{
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background: #F5F5F5;
|
||||
|
||||
}
|
||||
|
||||
.SearchtextBox{
|
||||
margin: 10px;
|
||||
border-radius: 20px;
|
||||
}
|
||||
.filterText{
|
||||
margin: 5px 15px 15px;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.container-icon{
|
||||
padding: 0 10px 20px;
|
||||
position: relative;
|
||||
white-space:nowrap;
|
||||
overflow-x:auto;
|
||||
}
|
||||
|
||||
.box-icon{
|
||||
width:90px;
|
||||
height: 90px;
|
||||
margin: 0px;
|
||||
display: inline-block;
|
||||
}
|
||||
.sale-icon{
|
||||
box-shadow: 1px 1px 5px 1px #cccc;
|
||||
padding: 5px;
|
||||
margin: 5px;
|
||||
border-radius: 10px;
|
||||
background: #fff;
|
||||
}
|
||||
.sale-icon ion-icon{
|
||||
font-size: 25px;
|
||||
}
|
||||
.sale-icon p{
|
||||
margin-top:5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.bottom-icon{
|
||||
text-overflow: clip;
|
||||
white-space: normal;
|
||||
font-size: 14px;
|
||||
}
|
||||
ion-card{
|
||||
margin:5px;
|
||||
}
|
||||
ion-card-header{
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
ion-card-header img{
|
||||
margin:15px auto;
|
||||
}
|
||||
.dark{
|
||||
display: block;
|
||||
margin: 6px;
|
||||
font-size: 18px;
|
||||
}
|
||||
ion-card-title{
|
||||
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
padding: 5px;
|
||||
}
|
||||
.orange{
|
||||
color: orange;
|
||||
}
|
||||
.green{
|
||||
color:#00AE4D;
|
||||
}
|
||||
ion-segment-button ion-label{
|
||||
padding: 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
.segment-button-checked ion-label{
|
||||
color: #fff !important;
|
||||
}
|
||||
.segment-button-checked{
|
||||
background: rgb(46, 46, 46);
|
||||
}
|
||||
ion-item{
|
||||
--background: #fff;
|
||||
margin: 10px;
|
||||
border-radius: 25px;
|
||||
padding: 5px;
|
||||
}
|
||||
ion-item h3{
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
.yellow{
|
||||
color:#ffc107;
|
||||
}
|
||||
|
||||
ion-item .icon{
|
||||
margin: 5px;
|
||||
}
|
||||
.edit{
|
||||
margin-left:20px !important;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { HomeComponent } from './home.component';
|
||||
|
||||
describe('HomeComponent', () => {
|
||||
let component: HomeComponent;
|
||||
let fixture: ComponentFixture<HomeComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ HomeComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(HomeComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,19 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-home',
|
||||
templateUrl: './home.component.html',
|
||||
styleUrls: ['./home.component.scss'],
|
||||
})
|
||||
export class HomeComponent implements OnInit {
|
||||
segment: any = '1';
|
||||
constructor(public ts: TranslatorService, public cs: CommonService,) { }
|
||||
ngOnInit() { }
|
||||
|
||||
|
||||
openDetails() {
|
||||
this.cs.navigateForward('/offersdiscount/offer-details');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
<ion-content>
|
||||
<div class="head-title">
|
||||
<ion-toolbar class="header-toolbar">
|
||||
<ion-buttons slot="start">
|
||||
|
||||
</ion-buttons>
|
||||
<ion-title color="light" >{{ts.trPK('itemforsale','title')}}</ion-title>
|
||||
</ion-toolbar>
|
||||
</div>
|
||||
<div class="header"></div>
|
||||
<div class="bottom"></div>
|
||||
<div>
|
||||
<ion-card>
|
||||
<ion-card-header>
|
||||
<img src="assets/imgs/itemsforsale/furniture.svg" />
|
||||
|
||||
<ion-card-title>Furniture Table</ion-card-title>
|
||||
</ion-card-header>
|
||||
|
||||
<ion-card-content>
|
||||
Keep close to Nature's heart... and break clear away, once in awhile,
|
||||
and climb a mountain or spend a week in the woods. Wash your spirit clean.
|
||||
<div class="content-bottom">
|
||||
<p class="green">Offer Valid</p>
|
||||
<h1>15% oFF + FREE HOME DELIVERY</h1>
|
||||
</div>
|
||||
<ion-item-divider>
|
||||
|
||||
</ion-item-divider>
|
||||
|
||||
</ion-card-content>
|
||||
|
||||
|
||||
</ion-card>
|
||||
</div>
|
||||
|
||||
|
||||
</ion-content>
|
||||
@ -0,0 +1,37 @@
|
||||
.header{
|
||||
height: 150px;
|
||||
width: 100%;
|
||||
|
||||
position: absolute;
|
||||
background: #259CB8;
|
||||
top: 0;
|
||||
}
|
||||
.header-toolbar{
|
||||
--background: #259CB8 !important;
|
||||
}
|
||||
.bottom{
|
||||
height: 88%;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background: #F5F5F5;
|
||||
top: 20%;
|
||||
}
|
||||
ion-card-header{
|
||||
background-color: #fff;
|
||||
padding: 15px !important;
|
||||
}
|
||||
.content-bottom{
|
||||
padding: 15px;
|
||||
}
|
||||
.green{
|
||||
color:green;
|
||||
font-weight: bold;
|
||||
}
|
||||
.content-bottom h1{
|
||||
font-size: 20px;
|
||||
margin-top: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.details-button ion-button{
|
||||
--background: #565656;
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { OfferDetailsComponent } from './offer-details.component';
|
||||
|
||||
describe('OfferDetailsComponent', () => {
|
||||
let component: OfferDetailsComponent;
|
||||
let fixture: ComponentFixture<OfferDetailsComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ OfferDetailsComponent ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(OfferDetailsComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,16 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
|
||||
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-offer-details',
|
||||
templateUrl: './offer-details.component.html',
|
||||
styleUrls: ['./offer-details.component.scss'],
|
||||
})
|
||||
export class OfferDetailsComponent implements OnInit {
|
||||
|
||||
constructor(public ts: TranslatorService, public cs: CommonService,) { }
|
||||
|
||||
ngOnInit() { }
|
||||
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
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 { OffersdiscountPage } from './offersdiscount.page';
|
||||
import { HomeComponent } from './home/home.component';
|
||||
import { OfferDetailsComponent } from './offer-details/offer-details.component';
|
||||
|
||||
|
||||
const routes: Routes = [
|
||||
{
|
||||
path: '',
|
||||
component: OffersdiscountPage,
|
||||
children: [
|
||||
{
|
||||
path: 'home',
|
||||
component: HomeComponent
|
||||
},
|
||||
{
|
||||
path: 'offer-details',
|
||||
component: OfferDetailsComponent
|
||||
},
|
||||
],
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
CommonModule,
|
||||
FormsModule,
|
||||
IonicModule,
|
||||
RouterModule.forChild(routes)
|
||||
],
|
||||
declarations: [OffersdiscountPage, HomeComponent, OfferDetailsComponent]
|
||||
})
|
||||
export class OffersdiscountPageModule { }
|
||||
@ -0,0 +1,3 @@
|
||||
<ion-content>
|
||||
<ion-router-outlet></ion-router-outlet>
|
||||
</ion-content>
|
||||
@ -0,0 +1,27 @@
|
||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { OffersdiscountPage } from './offersdiscount.page';
|
||||
|
||||
describe('OffersdiscountPage', () => {
|
||||
let component: OffersdiscountPage;
|
||||
let fixture: ComponentFixture<OffersdiscountPage>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ OffersdiscountPage ],
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(OffersdiscountPage);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,15 @@
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-offersdiscount',
|
||||
templateUrl: './offersdiscount.page.html',
|
||||
styleUrls: ['./offersdiscount.page.scss'],
|
||||
})
|
||||
export class OffersdiscountPage implements OnInit {
|
||||
|
||||
constructor() { }
|
||||
|
||||
ngOnInit() {
|
||||
}
|
||||
|
||||
}
|
||||
|
After Width: | Height: | Size: 237 KiB |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||
<path id="delete_1_" data-name="delete (1)" d="M13.657,2.343A8,8,0,0,0,2.343,13.657,8,8,0,0,0,13.657,2.343Zm-2.2,8.012a.781.781,0,1,1-1.1,1.1L8,9.1,5.645,11.46a.781.781,0,0,1-1.1-1.1L6.9,8,4.54,5.645a.781.781,0,0,1,1.1-1.1L8,6.9,10.355,4.54a.781.781,0,0,1,1.1,1.1L9.1,8Zm0,0" fill="#ca3332"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 386 B |
@ -0,0 +1,5 @@
|
||||
<svg id="delegate" xmlns="http://www.w3.org/2000/svg" width="27.148" height="27.148" viewBox="0 0 27.148 27.148">
|
||||
<path id="Path_2" data-name="Path 2" d="M213.386,301A2.389,2.389,0,0,0,211,303.386v1.946a6.693,6.693,0,0,0,4.772,0v-1.946A2.389,2.389,0,0,0,213.386,301Z" transform="translate(-199.812 -285.04)" fill="#259cb8"/>
|
||||
<circle id="Ellipse_149" data-name="Ellipse 149" cx="1" cy="1" r="1" transform="translate(12.599 10.599)" fill="#259cb8"/>
|
||||
<path id="Path_3" data-name="Path 3" d="M23.171,19.194a3.95,3.95,0,0,0-2.19.663l-1.827-1.827a7.04,7.04,0,0,0-.012-8.9l1.84-1.84a3.989,3.989,0,1,0-1.125-1.125l-1.84,1.84a7,7,0,0,0-8.886,0l-1.84-1.84A3.989,3.989,0,1,0,6.166,7.291l1.84,1.84a7.04,7.04,0,0,0-.012,8.9L6.166,19.857a3.989,3.989,0,1,0,1.125,1.125l1.827-1.827c.157.126.312.253.48.365V18.346a3.981,3.981,0,0,1,3.977-3.977,2.386,2.386,0,1,1,2.386-2.386,2.389,2.389,0,0,1-2.386,2.386,3.981,3.981,0,0,1,3.977,3.977V19.52c.167-.112.323-.24.48-.365l1.827,1.827a3.973,3.973,0,1,0,3.314-1.787Z" fill="#259cb8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1023 B |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22.596" height="22.596" viewBox="0 0 22.596 22.596">
|
||||
<path id="add_5_" data-name="add (5)" d="M13.719,9.28a.4.4,0,0,1-.4-.4V0H9.28V8.877a.4.4,0,0,1-.4.4H0v4.035H8.877a.4.4,0,0,1,.4.4V22.6h4.035V13.719a.4.4,0,0,1,.4-.4H22.6V9.28Zm0,0" fill="#fff"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 304 B |
@ -0,0 +1,9 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="33.045" height="28.881" viewBox="0 0 33.045 28.881">
|
||||
<g id="pawprint" transform="translate(0)">
|
||||
<path id="Path_4551" data-name="Path 4551" d="M82.4,185.654a8.046,8.046,0,0,0-13.549,0l-3.583,5.59a5.093,5.093,0,0,0,6.337,7.411l.068-.03a10.012,10.012,0,0,1,7.972.03,5.065,5.065,0,0,0,2.044.432,5.13,5.13,0,0,0,1.14-.129,5.094,5.094,0,0,0,3.154-7.714Zm0,0" transform="translate(-60.299 -170.206)" fill="#4d4d4d"/>
|
||||
<path id="Path_4552" data-name="Path 4552" d="M5.931,107.953a3.906,3.906,0,0,0,2.28-2.419,5.046,5.046,0,0,0-.089-3.48,5.05,5.05,0,0,0-2.267-2.641,3.906,3.906,0,0,0-3.312-.267,4.473,4.473,0,0,0-2.19,5.9A4.718,4.718,0,0,0,4.6,108.2,3.7,3.7,0,0,0,5.931,107.953Zm0,0" transform="translate(0 -92.512)" fill="#4d4d4d"/>
|
||||
<path id="Path_4553" data-name="Path 4553" d="M129.267,11.061c2.676,0,4.854-2.481,4.854-5.53S131.944,0,129.267,0s-4.853,2.481-4.853,5.531S126.591,11.061,129.267,11.061Zm0,0" transform="translate(-116.385)" fill="#4d4d4d"/>
|
||||
<path id="Path_4554" data-name="Path 4554" d="M287.118,50.074h0a3.956,3.956,0,0,0,1.25.2,5.031,5.031,0,0,0,4.58-3.6,5.424,5.424,0,0,0-.077-3.742,4.1,4.1,0,0,0-6.083-2.022,5.424,5.424,0,0,0-2.3,2.951C283.605,46.511,284.786,49.3,287.118,50.074Zm0,0" transform="translate(-265.853 -37.654)" fill="#4d4d4d"/>
|
||||
<path id="Path_4555" data-name="Path 4555" d="M383.908,171.789h0a4.756,4.756,0,0,0-5.615,7.586,3.8,3.8,0,0,0,2.279.736,4.908,4.908,0,0,0,3.876-2.053A4.474,4.474,0,0,0,383.908,171.789Zm0,0" transform="translate(-352.421 -160.014)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14.664" height="10.665" viewBox="0 0 14.664 10.665">
|
||||
<path id="next_3_" data-name="next (3)" d="M15.469,8.861,10.8,4.2a.666.666,0,1,0-.943.943l3.528,3.528H1.667a.667.667,0,0,0,0,1.333H13.388L9.86,13.527a.666.666,0,1,0,.943.943L15.469,9.8a.667.667,0,0,0,0-.942Z" transform="translate(-1 -4)" fill="#259cb8"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 364 B |
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="31.183" height="31.183" viewBox="0 0 31.183 31.183">
|
||||
<g id="weightlifting" transform="translate(0 0)">
|
||||
<path id="Path_4548" data-name="Path 4548" d="M3.386,261.6c-.331.208-.241.152-2.653,2.564a2.511,2.511,0,0,0,0,3.547l2.334,2.334-1.132,1.132a1.9,1.9,0,0,0,0,2.678l1.575,1.575a1.892,1.892,0,0,0,2.678,0L7.32,274.3l1.819,1.819a2.511,2.511,0,0,0,3.547,0c2.441-2.441,2.361-2.331,2.564-2.653Z" transform="translate(0 -245.67)" fill="#4d4d4d"/>
|
||||
<path id="Path_4549" data-name="Path 4549" d="M276.12,9.138,273.786,6.8l1.132-1.132a1.9,1.9,0,0,0,0-2.678L273.343,1.42a1.892,1.892,0,0,0-2.678,0l-1.132,1.132L267.715.733a2.511,2.511,0,0,0-3.547,0c-2.441,2.442-2.361,2.331-2.564,2.653l11.863,11.863c.331-.208.241-.152,2.653-2.564A2.511,2.511,0,0,0,276.12,9.138Z" transform="translate(-245.67)" fill="#4d4d4d"/>
|
||||
<path id="Path_4550" data-name="Path 4550" d="M0,0H13.847V5.476H0Z" transform="translate(8.783 18.576) rotate(-45)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1007 B |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="12.201" height="13.091" viewBox="0 0 12.201 13.091">
|
||||
<path id="Path_13" data-name="Path 13" d="M11.706,9.111c-.791-.676-1.593-1.086-2.375-.411l-.466.408c-.341.3-.976,1.681-3.429-1.141S4.443,4.71,4.785,4.416l.469-.409c.777-.677.484-1.529-.077-2.406L4.839,1.07C4.276.2,3.663-.38,2.884.3L2.463.664A3.952,3.952,0,0,0,.922,3.279C.641,5.138,1.528,7.266,3.559,9.6s4.014,3.51,5.895,3.489a3.962,3.962,0,0,0,2.8-1.161l.422-.368c.777-.675.294-1.363-.5-2.041Z" transform="translate(-0.872 0)" fill="#fff"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 551 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="38.443" height="24.839" viewBox="0 0 38.443 24.839">
|
||||
<g id="car_1_" data-name="car (1)" transform="translate(-0.001 -73.942)">
|
||||
<path id="Path_4534" data-name="Path 4534" d="M132.422,279H118.413l-1.243,3.019-.215.523h2.7a.454.454,0,0,1-.007-.072v-1.31a.459.459,0,0,1,.918,0v1.31a.454.454,0,0,1-.007.072h4.406a.454.454,0,0,1-.007-.072v-1.31a.459.459,0,0,1,.918,0v1.31a.454.454,0,0,1-.007.072h4.406a.454.454,0,0,1-.007-.072v-1.31a.459.459,0,0,1,.918,0v1.31a.452.452,0,0,1-.007.072h2.7l-.215-.523Z" transform="translate(-106.195 -186.191)" fill="#4d4d4d" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"/>
|
||||
<path id="Path_4535" data-name="Path 4535" d="M38.178,81.024a.782.782,0,0,0-.686-.473H33.979a.782.782,0,0,0-.686.473,4.839,4.839,0,0,0-.243.97c-1.545-2.975-3.256-6.286-3.256-6.286a1.4,1.4,0,0,0-1.066-.9,52.813,52.813,0,0,0-19.012,0,1.4,1.4,0,0,0-1.066.9S6.94,79.019,5.395,81.994a4.84,4.84,0,0,0-.243-.97.781.781,0,0,0-.686-.473H.953a.782.782,0,0,0-.686.473,3.46,3.46,0,0,0,0,2.664.782.782,0,0,0,.686.473H4.459c0,.044,0,.087.008.131A1.8,1.8,0,0,0,3.19,86.015v11.9a.866.866,0,0,0,.866.866H8.413a.866.866,0,0,0,.866-.866v-2.09h.7l1.5-3.652a.459.459,0,0,1,.424-.284H26.535a.459.459,0,0,1,.424.284l1.5,3.652h.7v2.09a.866.866,0,0,0,.866.866H34.39a.866.866,0,0,0,.866-.866v-11.9a1.8,1.8,0,0,0-1.278-1.723c0-.044.007-.087.008-.131h3.506a.782.782,0,0,0,.686-.473A3.46,3.46,0,0,0,38.178,81.024Zm-27.6-4.3s2.092-.531,8.641-.531,8.64.531,8.64.531l3.071,7.433H7.511ZM6.766,89.59V87.148h5.29l1.572,2.442Zm24.914,0H24.818l1.572-2.442h5.29V89.59Z" transform="translate(0 0)" fill="#4d4d4d" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="14.345" height="18.444" viewBox="0 0 14.345 18.444">
|
||||
<g id="Group_7396" data-name="Group 7396" transform="translate(0)">
|
||||
<path id="Path_4576" data-name="Path 4576" d="M64,97.629a2.049,2.049,0,0,0,2.049,2.049h8.2A2.049,2.049,0,0,0,76.3,97.629v-12.3H64Z" transform="translate(-62.975 -81.234)" fill="#ca3332"/>
|
||||
<path id="Path_4577" data-name="Path 4577" d="M53.426,1.025,52.4,0H47.278L46.253,1.025H42.667V3.074H57.012V1.025Z" transform="translate(-42.667)" fill="#ca3332"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 543 B |
@ -0,0 +1,5 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16.102" height="16.102" viewBox="0 0 16.102 16.102">
|
||||
<g id="Group_7192" data-name="Group 7192" transform="translate(0 0)">
|
||||
<path id="Path_4489" data-name="Path 4489" d="M10.955,91.119a1.7,1.7,0,0,1-.659.407l-2.383.794a1.681,1.681,0,0,1-.533.087h0a1.685,1.685,0,0,1-1.6-2.218l.794-2.383a1.693,1.693,0,0,1,.407-.659L12.13,82H2.06A2.062,2.062,0,0,0,0,84.06V96.043A2.062,2.062,0,0,0,2.06,98.1H14.043a2.062,2.062,0,0,0,2.06-2.06V85.972Z" transform="translate(0 -82)" fill="#2e303a"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 546 B |
@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28.545" height="33.303" viewBox="0 0 28.545 33.303">
|
||||
<g id="electrical-appliances" transform="translate(2.5)">
|
||||
<path id="Path_4536" data-name="Path 4536" d="M14.151,161.189V160H-2.5v23.788H8.2v-22a.6.6,0,0,1,.595-.595ZM-.121,164.758a.6.6,0,0,1-.595.595.6.6,0,0,1-.595-.595v-3.568a.6.6,0,0,1,.595-.595.6.6,0,0,1,.595.595Zm0,0" transform="translate(0 -150.485)" fill="#4d4d4d"/>
|
||||
<path id="Path_4537" data-name="Path 4537" d="M214.151,260H197.5v17.841h16.651Zm-8.326,16.057a6.542,6.542,0,1,1,6.542-6.542A6.542,6.542,0,0,1,205.826,276.057Zm0,0" transform="translate(-188.106 -244.538)" fill="#4d4d4d"/>
|
||||
<path id="Path_4538" data-name="Path 4538" d="M252.852,330a5.352,5.352,0,1,0,5.352,5.352A5.352,5.352,0,0,0,252.852,330Zm0,1.982a3.374,3.374,0,0,0-3.37,3.37.595.595,0,1,1-1.189,0,4.565,4.565,0,0,1,4.56-4.56.595.595,0,1,1,0,1.189Zm0,0" transform="translate(-235.133 -310.375)" fill="#4d4d4d"/>
|
||||
<path id="Path_4539" data-name="Path 4539" d="M14.151,0H-2.5V8.326H14.151ZM-.121,7.136a.6.6,0,0,1-.595.595.6.6,0,0,1-.595-.595V3.568a.6.6,0,0,1,.595-.595.6.6,0,0,1,.595.595Zm0,0" fill="#4d4d4d"/>
|
||||
<path id="Path_4540" data-name="Path 4540" d="M261.178,200H247.5v2.379h13.678Zm-10.7,1.784h-1.189a.595.595,0,0,1,0-1.189h1.189a.595.595,0,1,1,0,1.189Zm2.973,0h-1.189a.595.595,0,1,1,0-1.189h1.189a.595.595,0,1,1,0,1.189Zm0,0" transform="translate(-235.133 -188.106)" fill="#4d4d4d"/>
|
||||
<path id="Path_4541" data-name="Path 4541" d="M197.5,200h1.784v2.379H197.5Zm0,0" transform="translate(-188.106 -188.106)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="36.238" height="31.524" viewBox="0 0 36.238 31.524">
|
||||
<g id="casual-t-shirt-" transform="translate(0 -19.219)">
|
||||
<path id="Path_4546" data-name="Path 4546" d="M123.347,26.378A3.582,3.582,0,0,0,126.76,23.9a14.4,14.4,0,0,1-6.825,0A3.582,3.582,0,0,0,123.347,26.378Z" transform="translate(-105.229 -4.111)" fill="#4d4d4d"/>
|
||||
<path id="Path_4547" data-name="Path 4547" d="M36.192,24.077a.83.83,0,0,0-.432-.475l-6.909-3.189a33.411,33.411,0,0,0-4.479-1.179.824.824,0,0,0-.158-.015.812.812,0,0,0-.793.637,5.434,5.434,0,0,1-10.607,0,.813.813,0,0,0-.793-.637.824.824,0,0,0-.158.015,33.539,33.539,0,0,0-4.481,1.179L.476,23.6a.813.813,0,0,0-.431.475.806.806,0,0,0,.043.64l3,5.919a.814.814,0,0,0,.963.415l3.331-.987V49.924a.821.821,0,0,0,.82.819H28.034a.82.82,0,0,0,.818-.819V30.064l3.334.987a.814.814,0,0,0,.963-.415l3-5.919A.822.822,0,0,0,36.192,24.077Z" transform="translate(0)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 954 B |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="19.446" height="19.624" viewBox="0 0 19.446 19.624">
|
||||
<path id="Path_4563" data-name="Path 4563" d="M11.8,9.273a1.211,1.211,0,0,1,.319.82v8.924a.606.606,0,0,0,1.032.432L15.635,16.6c.333-.4.517-.6.517-.993V10.1a1.221,1.221,0,0,1,.319-.82l7.143-7.751A.909.909,0,0,0,22.946,0H5.32a.908.908,0,0,0-.668,1.524Z" transform="translate(-4.41)" fill="#4d4d4d"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 407 B |
@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="37.562" height="26.654" viewBox="0 0 37.562 26.654">
|
||||
<g id="sofa" transform="translate(0.001 -73.665)">
|
||||
<path id="Path_4542" data-name="Path 4542" d="M58.416,385.425l-.352,1.408a1.742,1.742,0,1,0,3.379.845L62,385.443H58.875C58.72,385.443,58.567,385.437,58.416,385.425Z" transform="translate(-53.717 -288.678)" fill="#4d4d4d"/>
|
||||
<path id="Path_4543" data-name="Path 4543" d="M399.011,385.425c-.151.012-.3.018-.458.018h-3.127l.558,2.234a1.742,1.742,0,0,0,3.379-.845Z" transform="translate(-366.149 -288.678)" fill="#4d4d4d"/>
|
||||
<path id="Path_4544" data-name="Path 4544" d="M43.644,80.2a4.3,4.3,0,0,1,3.849,3.43l.911,4.558a1.1,1.1,0,0,0,1.076.882H68.46a1.1,1.1,0,0,0,1.076-.882l.911-4.558A4.3,4.3,0,0,1,73.9,80.246l.149-.832a4.89,4.89,0,0,0-4.814-5.749H48.293a4.89,4.89,0,0,0-4.781,5.914Z" transform="translate(-40.189 0)" fill="#4d4d4d"/>
|
||||
<path id="Path_4545" data-name="Path 4545" d="M36.725,178.641a3.112,3.112,0,0,0-2.265-.982,3.08,3.08,0,0,0-.976.159h0a3.125,3.125,0,0,0-2.065,2.335l-.911,4.557a2.288,2.288,0,0,1-2.237,1.834H9.29a2.288,2.288,0,0,1-2.237-1.834l-.911-4.557a3.124,3.124,0,0,0-2.423-2.43h0a3.1,3.1,0,0,0-3.713,3.244l.413,6.19a4.744,4.744,0,0,0,4.573,4.714h0c.055,0,.11,0,.166,0H32.4c.056,0,.111,0,.166,0h0a4.743,4.743,0,0,0,4.573-4.714l.413-6.19A3.112,3.112,0,0,0,36.725,178.641Z" transform="translate(0 -96.294)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="32.579" height="32.579" viewBox="0 0 32.579 32.579">
|
||||
<path id="baby-stroller_1_" data-name="baby-stroller (1)" d="M23.806,20.83A9.686,9.686,0,0,0,32.579,11.2,11.211,11.211,0,0,0,21.38,0H17.308a1.018,1.018,0,1,0,0,2.036h1.018v8.145H5.09V6.109A3.058,3.058,0,0,0,2.036,3.054H1.018a1.018,1.018,0,0,0,0,2.036H2.036A1.019,1.019,0,0,1,3.054,6.109V11.2a9.686,9.686,0,0,0,8.773,9.631c.006,0-.027-.02,4.264,3.119-3.28,2.4-3.154,2.3-3.148,2.3a3.562,3.562,0,1,0,1.15,1.682l3.722-2.722,3.732,2.73A3.558,3.558,0,1,0,22.7,26.258l-3.158-2.31c3.394-2.482,4.271-3.119,4.265-3.119Zm-5.99,1.857-2.483-1.816H20.3Z" fill="#4d4d4d"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 667 B |
@ -0,0 +1,5 @@
|
||||
<svg id="mobile" xmlns="http://www.w3.org/2000/svg" width="18.346" height="35.158" viewBox="0 0 18.346 35.158">
|
||||
<path id="Path_4531" data-name="Path 4531" d="M18.346,4.886V2.1a2.1,2.1,0,0,0-2.1-2.1H2.1A2.1,2.1,0,0,0,0,2.1V4.886Zm0,0" fill="#4d4d4d"/>
|
||||
<path id="Path_4532" data-name="Path 4532" d="M0,440.848v2.783a2.1,2.1,0,0,0,2.1,2.1H16.243a2.1,2.1,0,0,0,2.1-2.1v-2.783Zm10.823,3.431h-3.3a1.04,1.04,0,1,1,0-2.08h3.3a1.04,1.04,0,1,1,0,2.08Zm0,0" transform="translate(0 -410.576)" fill="#4d4d4d"/>
|
||||
<path id="Path_4533" data-name="Path 4533" d="M0,101.449H18.346v21.225H0Zm0,0" transform="translate(0 -94.483)" fill="#4d4d4d"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 640 B |
@ -0,0 +1,19 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="31.157" height="8.902" viewBox="0 0 31.157 8.902">
|
||||
<g id="more_1_" data-name="more (1)" transform="translate(0 -170.666)">
|
||||
<g id="Group_7031" data-name="Group 7031" transform="translate(0 170.666)">
|
||||
<g id="Group_7030" data-name="Group 7030" transform="translate(0 0)">
|
||||
<circle id="Ellipse_145" data-name="Ellipse 145" cx="4.451" cy="4.451" r="4.451" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7033" data-name="Group 7033" transform="translate(11.127 170.666)">
|
||||
<g id="Group_7032" data-name="Group 7032" transform="translate(0 0)">
|
||||
<circle id="Ellipse_146" data-name="Ellipse 146" cx="4.451" cy="4.451" r="4.451" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7035" data-name="Group 7035" transform="translate(22.255 170.666)">
|
||||
<g id="Group_7034" data-name="Group 7034" transform="translate(0 0)">
|
||||
<circle id="Ellipse_147" data-name="Ellipse 147" cx="4.451" cy="4.451" r="4.451" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="19.777" height="15.608" viewBox="0 0 19.777 15.608">
|
||||
<g id="chat-bubbles-with-ellipsis" transform="translate(0 -3.24)">
|
||||
<path id="Path_4559" data-name="Path 4559" d="M21.507,9.67h-.542v5.954a1.612,1.612,0,0,1-1.622,1.765H8.743v.283a1.909,1.909,0,0,0,1.889,1.647h8.1l3.1,1.823-.45-1.823h.119A1.463,1.463,0,0,0,22.9,17.672V11.083A1.276,1.276,0,0,0,21.507,9.67Z" transform="translate(-3.119 -2.294)" fill="#fff"/>
|
||||
<path id="Path_4560" data-name="Path 4560" d="M14.643,3.24H2.33C1.247,3.24,0,4.2,0,5.13v7.462c0,.854,1.056,1.471,2.069,1.566l-.659,2.5,4.225-2.486h9.007c1.083,0,2.083-.657,2.083-1.584V5.13A2.126,2.126,0,0,0,14.643,3.24ZM4.208,9.539A1.112,1.112,0,1,1,5.321,8.427,1.112,1.112,0,0,1,4.208,9.539Zm4.154,0A1.112,1.112,0,1,1,9.475,8.427,1.112,1.112,0,0,1,8.363,9.539Zm4.155,0A1.112,1.112,0,1,1,13.63,8.427,1.113,1.113,0,0,1,12.518,9.539Z" transform="translate(0 0)" fill="#fff"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 956 B |
@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="22.163" height="22.154" viewBox="0 0 22.163 22.154">
|
||||
<g id="bank" transform="translate(0 -0.103)">
|
||||
<path id="Path_4569" data-name="Path 4569" d="M22.163,453.2H20.821v-1.3H1.342v1.3H0v1.3H22.163Z" transform="translate(0 -432.237)" fill="#4d4d4d"/>
|
||||
<path id="Path_4570" data-name="Path 4570" d="M31,150.9H50.479v2.6H31Z" transform="translate(-29.658 -144.267)" fill="#4d4d4d"/>
|
||||
<path id="Path_4571" data-name="Path 4571" d="M61,240.9h3.9v7.835H61Z" transform="translate(-58.359 -230.371)" fill="#4d4d4d"/>
|
||||
<path id="Path_4572" data-name="Path 4572" d="M211,240.9h3.9v7.835H211Z" transform="translate(-201.866 -230.371)" fill="#4d4d4d"/>
|
||||
<path id="Path_4573" data-name="Path 4573" d="M361,240.9h3.9v7.835H361Z" transform="translate(-345.373 -230.371)" fill="#4d4d4d"/>
|
||||
<path id="Path_4574" data-name="Path 4574" d="M22.163,4.23,11.082.1,0,4.23v1.1H22.163Zm-10.432-.2h-1.3v-1.3h1.3Z" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 984 B |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="38.443" height="24.839" viewBox="0 0 38.443 24.839">
|
||||
<g id="car_1_" data-name="car (1)" transform="translate(-0.001 -73.942)">
|
||||
<path id="Path_4534" data-name="Path 4534" d="M132.422,279H118.413l-1.243,3.019-.215.523h2.7a.454.454,0,0,1-.007-.072v-1.31a.459.459,0,0,1,.918,0v1.31a.454.454,0,0,1-.007.072h4.406a.454.454,0,0,1-.007-.072v-1.31a.459.459,0,0,1,.918,0v1.31a.454.454,0,0,1-.007.072h4.406a.454.454,0,0,1-.007-.072v-1.31a.459.459,0,0,1,.918,0v1.31a.452.452,0,0,1-.007.072h2.7l-.215-.523Z" transform="translate(-106.195 -186.191)" fill="#4d4d4d" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"/>
|
||||
<path id="Path_4535" data-name="Path 4535" d="M38.178,81.024a.782.782,0,0,0-.686-.473H33.979a.782.782,0,0,0-.686.473,4.839,4.839,0,0,0-.243.97c-1.545-2.975-3.256-6.286-3.256-6.286a1.4,1.4,0,0,0-1.066-.9,52.813,52.813,0,0,0-19.012,0,1.4,1.4,0,0,0-1.066.9S6.94,79.019,5.395,81.994a4.84,4.84,0,0,0-.243-.97.781.781,0,0,0-.686-.473H.953a.782.782,0,0,0-.686.473,3.46,3.46,0,0,0,0,2.664.782.782,0,0,0,.686.473H4.459c0,.044,0,.087.008.131A1.8,1.8,0,0,0,3.19,86.015v11.9a.866.866,0,0,0,.866.866H8.413a.866.866,0,0,0,.866-.866v-2.09h.7l1.5-3.652a.459.459,0,0,1,.424-.284H26.535a.459.459,0,0,1,.424.284l1.5,3.652h.7v2.09a.866.866,0,0,0,.866.866H34.39a.866.866,0,0,0,.866-.866v-11.9a1.8,1.8,0,0,0-1.278-1.723c0-.044.007-.087.008-.131h3.506a.782.782,0,0,0,.686-.473A3.46,3.46,0,0,0,38.178,81.024Zm-27.6-4.3s2.092-.531,8.641-.531,8.64.531,8.64.531l3.071,7.433H7.511ZM6.766,89.59V87.148h5.29l1.572,2.442Zm24.914,0H24.818l1.572-2.442h5.29V89.59Z" transform="translate(0 0)" fill="#4d4d4d" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="0"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="36.238" height="31.524" viewBox="0 0 36.238 31.524">
|
||||
<g id="casual-t-shirt-" transform="translate(0 -19.219)">
|
||||
<path id="Path_4546" data-name="Path 4546" d="M123.347,26.378A3.582,3.582,0,0,0,126.76,23.9a14.4,14.4,0,0,1-6.825,0A3.582,3.582,0,0,0,123.347,26.378Z" transform="translate(-105.229 -4.111)" fill="#4d4d4d"/>
|
||||
<path id="Path_4547" data-name="Path 4547" d="M36.192,24.077a.83.83,0,0,0-.432-.475l-6.909-3.189a33.411,33.411,0,0,0-4.479-1.179.824.824,0,0,0-.158-.015.812.812,0,0,0-.793.637,5.434,5.434,0,0,1-10.607,0,.813.813,0,0,0-.793-.637.824.824,0,0,0-.158.015,33.539,33.539,0,0,0-4.481,1.179L.476,23.6a.813.813,0,0,0-.431.475.806.806,0,0,0,.043.64l3,5.919a.814.814,0,0,0,.963.415l3.331-.987V49.924a.821.821,0,0,0,.82.819H28.034a.82.82,0,0,0,.818-.819V30.064l3.334.987a.814.814,0,0,0,.963-.415l3-5.919A.822.822,0,0,0,36.192,24.077Z" transform="translate(0)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 954 B |
@ -0,0 +1,10 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="28.545" height="33.303" viewBox="0 0 28.545 33.303">
|
||||
<g id="electrical-appliances" transform="translate(2.5)">
|
||||
<path id="Path_4536" data-name="Path 4536" d="M14.151,161.189V160H-2.5v23.788H8.2v-22a.6.6,0,0,1,.595-.595ZM-.121,164.758a.6.6,0,0,1-.595.595.6.6,0,0,1-.595-.595v-3.568a.6.6,0,0,1,.595-.595.6.6,0,0,1,.595.595Zm0,0" transform="translate(0 -150.485)" fill="#4d4d4d"/>
|
||||
<path id="Path_4537" data-name="Path 4537" d="M214.151,260H197.5v17.841h16.651Zm-8.326,16.057a6.542,6.542,0,1,1,6.542-6.542A6.542,6.542,0,0,1,205.826,276.057Zm0,0" transform="translate(-188.106 -244.538)" fill="#4d4d4d"/>
|
||||
<path id="Path_4538" data-name="Path 4538" d="M252.852,330a5.352,5.352,0,1,0,5.352,5.352A5.352,5.352,0,0,0,252.852,330Zm0,1.982a3.374,3.374,0,0,0-3.37,3.37.595.595,0,1,1-1.189,0,4.565,4.565,0,0,1,4.56-4.56.595.595,0,1,1,0,1.189Zm0,0" transform="translate(-235.133 -310.375)" fill="#4d4d4d"/>
|
||||
<path id="Path_4539" data-name="Path 4539" d="M14.151,0H-2.5V8.326H14.151ZM-.121,7.136a.6.6,0,0,1-.595.595.6.6,0,0,1-.595-.595V3.568a.6.6,0,0,1,.595-.595.6.6,0,0,1,.595.595Zm0,0" fill="#4d4d4d"/>
|
||||
<path id="Path_4540" data-name="Path 4540" d="M261.178,200H247.5v2.379h13.678Zm-10.7,1.784h-1.189a.595.595,0,0,1,0-1.189h1.189a.595.595,0,1,1,0,1.189Zm2.973,0h-1.189a.595.595,0,1,1,0-1.189h1.189a.595.595,0,1,1,0,1.189Zm0,0" transform="translate(-235.133 -188.106)" fill="#4d4d4d"/>
|
||||
<path id="Path_4541" data-name="Path 4541" d="M197.5,200h1.784v2.379H197.5Zm0,0" transform="translate(-188.106 -188.106)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="31.183" height="31.183" viewBox="0 0 31.183 31.183">
|
||||
<g id="weightlifting" transform="translate(0 0)">
|
||||
<path id="Path_4548" data-name="Path 4548" d="M3.386,261.6c-.331.208-.241.152-2.653,2.564a2.511,2.511,0,0,0,0,3.547l2.334,2.334-1.132,1.132a1.9,1.9,0,0,0,0,2.678l1.575,1.575a1.892,1.892,0,0,0,2.678,0L7.32,274.3l1.819,1.819a2.511,2.511,0,0,0,3.547,0c2.441-2.441,2.361-2.331,2.564-2.653Z" transform="translate(0 -245.67)" fill="#4d4d4d"/>
|
||||
<path id="Path_4549" data-name="Path 4549" d="M276.12,9.138,273.786,6.8l1.132-1.132a1.9,1.9,0,0,0,0-2.678L273.343,1.42a1.892,1.892,0,0,0-2.678,0l-1.132,1.132L267.715.733a2.511,2.511,0,0,0-3.547,0c-2.441,2.442-2.361,2.331-2.564,2.653l11.863,11.863c.331-.208.241-.152,2.653-2.564A2.511,2.511,0,0,0,276.12,9.138Z" transform="translate(-245.67)" fill="#4d4d4d"/>
|
||||
<path id="Path_4550" data-name="Path 4550" d="M0,0H13.847V5.476H0Z" transform="translate(8.783 18.576) rotate(-45)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1007 B |
@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18.279" height="25.236" viewBox="0 0 18.279 25.236">
|
||||
<path id="Path_4575" data-name="Path 4575" d="M79.712,0a9.15,9.15,0,0,0-9.139,9.139c0,6.254,8.179,15.436,8.527,15.823a.823.823,0,0,0,1.225,0c.348-.388,8.527-9.569,8.527-15.823A9.15,9.15,0,0,0,79.712,0Zm0,13.738a4.6,4.6,0,1,1,4.6-4.6A4.6,4.6,0,0,1,79.712,13.738Z" transform="translate(-70.573)" fill="#4d4d4d"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 420 B |
@ -0,0 +1,14 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="23.422" height="22.262" viewBox="0 0 23.422 22.262">
|
||||
<g id="home_10_" data-name="home (10)" transform="translate(0 -12.675)">
|
||||
<g id="Group_7385" data-name="Group 7385" transform="translate(0 12.675)">
|
||||
<g id="Group_7384" data-name="Group 7384" transform="translate(0 0)">
|
||||
<path id="Path_4561" data-name="Path 4561" d="M23.028,22.566,12.52,12.991a1.2,1.2,0,0,0-1.618,0L.393,22.566A1.2,1.2,0,0,0,1.2,24.655H2.881v9.594a.689.689,0,0,0,.689.689H9.33a.689.689,0,0,0,.689-.689V28.424H13.4v5.825a.689.689,0,0,0,.689.689h5.76a.689.689,0,0,0,.689-.689V24.655H22.22a1.2,1.2,0,0,0,.809-2.089Z" transform="translate(0 -12.675)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Group_7387" data-name="Group 7387" transform="translate(15.735 14.05)">
|
||||
<g id="Group_7386" data-name="Group 7386" transform="translate(0 0)">
|
||||
<path id="Path_4562" data-name="Path 4562" d="M348.6,42.73h-4.626l5.315,4.832V43.419A.689.689,0,0,0,348.6,42.73Z" transform="translate(-343.973 -42.73)" fill="#4d4d4d"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |