design and address

MOHEMM-SFH-COLORS
Sultan Khan 4 years ago
parent 5ae2c2f170
commit 7671eb7f14

@ -8,7 +8,7 @@ export class EitAddressRequest {
public P_FUNCTION_NAME: string;
public P_SELECTED_RESP_ID: Number;
P_DESC_FLEX_CONTEXT_CODE: string;
P_TRANSACTION_VALUES_TBL: EitTransactionModel[];
EITTransactionTBL: EitTransactionModel[];
P_COUNTRY_CODE: string;
P_EFFECTIVE_DATE: string;
P_ACTION: string;

@ -1250,6 +1250,9 @@ export class CommonService {
public openAddAddress() {
this.nav.navigateForward(['/profile/add-address']);
}
public openConfirmAddAddress() {
this.nav.navigateForward(['/profile/confirm-add-address']);
}
public openPerformanceevaluation() {
this.nav.navigateForward(['/profile/performanceevaluation']);
}

@ -18,26 +18,30 @@
<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-circle"><span style="content: url(/assets/imgs/check-white.svg)"></span></div>
<div class="md-step-title">{{ts.trPK('itemforsale','select-category')}}</div>
<div class="md-step-optional">{{ts.trPK('itemforsale','completed')}}</div>
<div class="md-step-bar-left"></div>
<div class="md-step-bar-right"></div>
<!-- <div class="md-step-bar-right" [ngClass]="step ==1 ? 'orange-border' : 'green-border'"></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" [ngClass]="step >2 ? 'green' : step ==2 ? 'orange' : 'grey'">
<div class="md-step-circle"><span *ngIf="step==1" style="content: url(/assets/imgs/check.svg)"></span>
<span *ngIf="step>2 || step==2" style="content: url(/assets/imgs/check-white.svg)">
</span>
</div>
<div class="md-step-title">{{ts.trPK('itemforsale','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" [ngClass]="step >3 ? 'green' : step ==3 ? 'orange' : 'grey'">
<div class="md-step-circle"><span *ngIf="step==1 || step==2" style="content: url(/assets/imgs/check.svg)"></span>
<span *ngIf="step>=3" style="content: url(/assets/imgs/check-white.svg)"></span></div>
<div class="md-step-title">{{ts.trPK('itemforsale','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">
@ -52,7 +56,7 @@
<ion-col size="4">
<div class="sale-icon" (click)="nextStep()">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="/assets/imgs/itemsforsale/mobile.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
@ -62,20 +66,20 @@
<ion-col size="4">
<div class="sale-icon" (click)="openItem()">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="/assets/imgs/itemsforsale/cars.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
<p>Cars & Vehicles</p>
</div>
</div>
</ion-col>
<ion-col size="4">
<div class="sale-icon">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="/assets/imgs/itemsforsale/electronic appliances.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
<p>Electronic Applicance</p>
</div>
</div>
</ion-col>
@ -85,30 +89,30 @@
<ion-col size="4">
<div class="sale-icon">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="/assets/imgs/itemsforsale/furniture.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
<p>Furniture & Home Decor</p>
</div>
</div>
</ion-col>
<ion-col size="4">
<div class="sale-icon">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="/assets/imgs/itemsforsale/fashion.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
<p>Fashion & beauty</p>
</div>
</div>
</ion-col>
<ion-col size="4">
<div class="sale-icon">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="/assets/imgs/itemsforsale/book and sports.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
<p>Books, Sports & Hobbies</p>
</div>
</div>
</ion-col>
@ -174,7 +178,7 @@
<p>Item Photos</p>
</ion-row>
<ion-row>
<ion-col lines="none" size="4">
<ion-col lines="none" size="3">
<div class="image-container">
<div class="uploaded">
<div class="closed">X</div>
@ -183,7 +187,7 @@
</div>
</ion-col>
<ion-col lines="none" size="4">
<ion-col lines="none" size="3">
<div class="image-container">
<div class="uploaded">
<div class="closed">X</div>
@ -192,7 +196,15 @@
</div>
</ion-col>
<ion-col lines="none" size="3">
<div class="image-container uploader-box">
<div class="uploaded">
<ion-icon name="camera" class="camera-icon"></ion-icon>
</div>
</div>
</ion-col>
</ion-row>
@ -206,7 +218,7 @@
<div class="add-details" *ngIf="step==3">
<h2>Furniture Table</h2>
<h2 class="review-title">Furniture Table</h2>
@ -232,16 +244,25 @@
</div>
<ion-footer *ngIf="step==1">
<div class="centerDiv">
<ion-button class="footer-button red-button" ion-button>
cancel </ion-button>
</div>
</ion-footer>
<ion-footer *ngIf="step>1">
<div class="centerDiv">
<ion-button class="footer-button" ion-button (click)="step =3" *ngIf="step ==2">
<ion-button class="footer-button red-button small-btn" ion-button (click)="step =3" *ngIf="step ==2 || step ==3">
cancel </ion-button>
<ion-button class="footer-button small-btn" 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>
<ion-button class="footer-button small-btn" ion-button (click)="openItem()" *ngIf="step ==3">
Confirm </ion-button>
</div>
</ion-footer>

@ -12,7 +12,8 @@
.md-stepper-horizontal .md-step {
display:table-cell;
position:relative;
padding:24px;
padding:20px;
text-align: left;
}
.md-stepper-horizontal .md-step:hover,
.md-stepper-horizontal .md-step:active {
@ -32,21 +33,21 @@
.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 {
.md-stepper-horizontal .md-step:last-child .md-step-bar-left {
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;
width: 30px;
height: 30px;
border-radius: 50%;
text-align: center;
line-height: 30px;
font-size: 16px;
font-weight: 600;
color: #FFFFFF;
}
.md-stepper-horizontal .md-step:last-child .md-step-circle {
margin-left:20px
}
.md-stepper-horizontal.green .md-step.active .md-step-circle {
background-color:#00AE4D;
@ -78,8 +79,8 @@
content: "\f040";
}
.md-stepper-horizontal .md-step .md-step-title {
margin-top: 10px;
font-size: 15px;
margin-top: 5px;
font-size: 10px;
font-weight:bold;
}
.md-stepper-horizontal .md-step .md-step-title,
@ -87,35 +88,42 @@
text-align: center;
color:rgba(0,0,0,.26);
}
.md-stepper-horizontal .md-step.active .md-step-title {
.md-stepper-horizontal .md-step.orange .md-step-title, .md-stepper-horizontal .md-step.green .md-step-title {
font-weight: 600;
color:rgba(0,0,0,.87);
color:black;
}
.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;
font-size:10px;
}
.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;
position: absolute;
top: 36px;
height: 2px;
background: #DDDDDD;
width: 80px;
}
.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;
margin-right: 0px;
left: 55px
}
.orange .md-step-bar-left {
background:#CC9B14 !important;
}
.green .md-step-bar-left {
background:#1FA169 !important;
}
.header{
height: 150px;
width: 100%;
@ -153,7 +161,7 @@
font-size: 12px;
background-color:#00AE4D;
color: #ffffff !important;
padding: 2px;
padding: 3px 5px 3px 5px;
border-radius: 5px;
}
.green .md-step-circle{
@ -162,29 +170,40 @@
.orange .md-step-circle{
background: #CC9B14 !important;
}
.grey .md-step-circle{
background: #E3E3E3 !important;
}
.content{
position: relative;
margin-bottom: 70px;
}
.offering{
font-weight: bold;
margin:20px;
margin: 20px 20px 0px;
position: relative;
}
.offering h2{
font-weight: bold;
font-size: 20px;
margin-bottom: 0;
}
.sale-icon{
box-shadow: 1px 1px 5px 1px #cccc;
padding: 10px;
margin: 5px;
border-radius: 10px;
margin: 1px;
border-radius: 15px;
background: #fff;
}
.sale-icon ion-icon{
font-size: 35px;
}
.sale-icon p{
margin-top:5px;
margin-top: 5px;
margin-bottom: 0;
font-size: 12px;
font-weight: bold;
}
.add-details{
background: #fff;
@ -215,7 +234,7 @@ position: relative;
height: 70px;
}
.image-container .uploaded{
position: absolute;
position: relative;
}
.image-container .uploaded .closed{
position: absolute;
@ -251,4 +270,45 @@ color:orange
display: inline-block;
font-weight: bolder;
}
.flaot-button{float:right;margin:30px}
.flaot-button{float:right;margin:30px}
.orange-border{
border-top:2px solid #CC9B14;
}
.green-border{
border-top:2px solid #00AE4D;
}
.md-step span{
position: relative;
}
.red-button{
--background:#CA3332;
}
ion-footer{
bottom: 0;
position: fixed;
}
.small-btn{
width: 40%;
}
.uploader-box{
border-width: 2px;
border-color: #259CB8;
border-style: dotted;
border-radius: 10px;
left: 10px;
}
.review-title{
font-size: 16px;
font-weight: bold;
}
.camera-icon{
font-size: 35px;
position: absolute;
margin: auto;
left: 0;
right: 0;
top: 60px;
bottom: 0;
color: #259CB8;
}

@ -23,4 +23,5 @@ export class HomeComponent implements OnInit {
openMyAds() {
this.cs.navigateForward('/itemforsale/my-ads');
}
}

@ -12,7 +12,8 @@
<div>
<ion-card>
<ion-card-header>
<img src="assets/imgs/itemsforsale/furniture.svg" />
<img src="https://ii1.pepperfry.com/media/catalog/product/r/o/568x625/royal-wing-chair-in-blue-color-by-dreamzz-furniture-royal-wing-chair-in-blue-color-by-dreamzz-furnit-6hcjya.jpg" />
<ion-card-title>Furniture Table</ion-card-title>
</ion-card-header>
@ -24,18 +25,16 @@
<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==">
<img class="profile-img" src="/assets/imgs/S.png">
</ion-avatar>
<ion-label>
<h2>Aslam Khan</h2>
<p>Published on 22 April 2020</p>
<p class="profile-title">Mohammed Imran</p>
<p>Posted on 22 April 2020</p>
<p><a href="">View Profile</a></p>
</ion-label>
@ -51,10 +50,13 @@
<ion-footer >
<div class="centerDiv details-button" >
<ion-button class="footer-button" ion-button>
<img class="icon-footer" src="/assets/imgs/itemsforsale/sms.svg">
{{ts.trPK('sms','title')}} </ion-button>
<ion-button class="footer-button" ion-button>
<img class="icon-footer" src="/assets/imgs/itemsforsale/call.svg">
{{ts.trPK('vacation-rule','call')}} </ion-button>
</div>
</ion-footer>

@ -18,19 +18,62 @@
}
ion-card-header{
background-color: #fff;
padding: 15px !important;
padding: 10px 10px 5px !important;
}
ion-card-header img{
height: 320px;
}
ion-card-title{
margin: 15px 10px 0px;
}
ion-card-content{
padding-top: 0px;
padding-bottom: 0px;
}
.content-bottom{
padding: 15px;
padding-top: 15px;
}
.green{
color:green;
color:#1FA169;
font-weight: bold;
}
.content-bottom h1{
font-size: 24px;
font-size: 22px;
font-weight: bold;
}
.details-button ion-button{
--background: #565656;
width: 125px;
width: 150px;
border-radius: 8px;
}
.profile-title{
color:#000;
font-weight: bold;
}
.profile-img{
height: 50px;
width: 50px;
border-radius: 50%;
}
ion-avatar{
height: 50px;
width: 50px;
text-align: center;
}
ion-avatar p{
color:#000;
}
ion-avatar a{
color:#259CB8;
text-decoration: underline;
}
ion-footer{
position: fixed;
bottom: 0;
}
.icon-footer{
margin: 6px;
position: absolute;
left: 35px;
}

@ -37,7 +37,7 @@
<p class="filterText"> {{ts.trPK('itemforsale','browse-categories')}} </p>
</ion-col>
<ion-col size="2">
<img src="assets/imgs/itemsforsale/filter.svg">
<img class="filter-icon" src="assets/imgs/itemsforsale/filter.svg">
</ion-col>
</ion-row>
</ion-grid>
@ -46,7 +46,7 @@
<div class="box-icon">
<div class="sale-icon">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="assets/imgs/itemsforsale/mobile.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
@ -56,52 +56,43 @@
<div class="box-icon">
<div class="sale-icon">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="assets/imgs/itemsforsale/cars.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
<p>Cars & Vehicle</p>
</div>
</div>
</div>
<div class="box-icon">
<div class="sale-icon">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="assets/imgs/itemsforsale/electronic appliances.svg">
</div>
<div class="bottom-icon">
<p>Mobile & Tablets</p>
<p>Electronic Appliance</p>
</div>
</div>
</div>
<div class="box-icon">
<div class="sale-icon">
<div class="top">
<ion-icon name="images"></ion-icon>
<img src="assets/imgs/itemsforsale/electronic appliances.svg">
</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>
<p>Fashion & Beauty</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" />
<img src="https://ii1.pepperfry.com/media/catalog/product/r/o/568x625/royal-wing-chair-in-blue-color-by-dreamzz-furniture-royal-wing-chair-in-blue-color-by-dreamzz-furnit-6hcjya.jpg" />
<ion-card-title>Card Title</ion-card-title>
<ion-card-title>Furniture Table</ion-card-title>
</ion-card-header>
<ion-card-content>
@ -123,12 +114,12 @@
</ion-card-content>
</ion-card>
</ion-col>
<ion-col size="6">
<ion-col size="6" (click)="openDetails()">
<ion-card>
<ion-card-header>
<img src="assets/imgs/itemsforsale/furniture.svg" />
<img src="https://ii1.pepperfry.com/media/catalog/product/r/o/568x625/royal-wing-chair-in-blue-color-by-dreamzz-furniture-royal-wing-chair-in-blue-color-by-dreamzz-furnit-6hcjya.jpg" />
<ion-card-title>Card Title</ion-card-title>
<ion-card-title>Furniture Table</ion-card-title>
</ion-card-header>
<ion-card-content>
@ -158,11 +149,15 @@
<ion-row>
<ion-item button (click)="testClick()">
<ion-thumbnail slot="start">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==">
<img src="https://ii1.pepperfry.com/media/catalog/product/r/o/568x625/royal-wing-chair-in-blue-color-by-dreamzz-furniture-royal-wing-chair-in-blue-color-by-dreamzz-furnit-6hcjya.jpg" />
</ion-thumbnail>
<ion-label>
<ion-label class="label-thumb">
<h3>Furniture Table</h3>
<p>good condition only 6th month used with bed and mattress</p>
<p class="posted-on">
Posted on 24 April 2021
</p>
<p class="details-text">good condition only 6th month used </p>
<ion-row>
<ion-col size="8">
<p class="yellow">Pending Review</p>

@ -20,7 +20,7 @@
.SearchtextBox{
margin: 10px;
border-radius: 20px;
border-radius: 50px;
}
.filterText{
margin: 5px 15px 15px;
@ -51,7 +51,10 @@
font-size: 25px;
}
.sale-icon p{
margin-top:5px;
margin-top: 5px;
margin-bottom: 5px;
margin-left: 5px;
font-size: 14px;
}
.bottom-icon{
text-overflow: clip;
@ -62,6 +65,8 @@ ion-card-header{
}
ion-card-header img{
margin:15px auto;
border-radius: 6px;
height: 170px;
}
ion-card-title{
@ -73,7 +78,8 @@ ion-card-title{
color: orange;
}
.green{
color:#00AE4D;
color:#1FA169;
font-weight: bold;
}
ion-segment-button{
--background-checked: #000;
@ -82,7 +88,7 @@ ion-segment-button{
}
ion-segment-button ion-label{
padding: 0;
font-size: 12px;
font-size: 16px;
}
.segment-button-checked ion-label{
color: #fff !important;
@ -102,14 +108,16 @@ ion-item h3{
font-size: 16px;
}
.yellow{
color:#ffc107;
color:#CC9B14;
font-weight: bold;
}
ion-item .icon{
margin: 5px;
}
.edit{
margin-left:20px !important;
position: absolute;
right: 0px;
}
.fab-button{
position: fixed;
@ -131,8 +139,42 @@ ion-footer .footer-button{
border-radius: 10px;
}
ion-segment{
height:40px
height:55px
}
ion-card{
margin:5px;
margin: 0px;
--background: #fff;
--border-radius: 53px;
border-radius: 10px;
}
.filter-icon{
margin-left: 15px;
}
.top img{
width: 25px;
height: 30px;
margin: 5px 5px 0px 5px;
}
.forward-arrow{
color:#259CB8;
font-size: 26px;
}
ion-card-content{
padding: 0 15px 10px 15px;
}
.label-thumb h2{
font-size: 14px;
font-weight: bold;
}
.posted-on{
color: #969696;
float: right;
position: absolute;
top: 0;
right: 0;
font-size: 10px;
margin: 5px;
}
.details-text{
white-space: normal;
}

@ -125,7 +125,7 @@ export class AddAddressComponent implements OnInit {
// this.functionName = this.getPassMnuEntryObj.FUNCTION_NAME;
// this.menuType = this.selMenu.List_Menu.MENU_TYPE;
// this.validateEitObj = this.addEITData.submitEITObjList;
this.headerTitle = this.selMenu.GetMenuEntriesList.PROMPT;
this.headerTitle = this.selMenu.GetMenuEntriesList.PROMPT;
// this.eitSubmitAction = this.cs.sharedService.getSharedData(
// EITTransactionsRequest.SUBMIT_EIT_ACTION
// );
@ -148,7 +148,8 @@ export class AddAddressComponent implements OnInit {
P_FUNCTION_NAME: this.selMenu.GetMenuEntriesList.FUNCTION_NAME,
P_SELECTED_EMPLOYEE_NUMBER: this.selEmp,
P_MENU_TYPE: this.menuType,
P_SELECTED_RESP_ID: this.respID
P_SELECTED_RESP_ID: this.respID,
P_COUNTRY_CODE: 'SA'
// P_USER_NAME:this.userName
};
this.profileService.getAddressDiffStructure(body).subscribe((result: any) => {
@ -1563,7 +1564,8 @@ export class AddAddressComponent implements OnInit {
{ isResubmit: false },
"confirmAddEITData"
);
this.cs.openConfirmEitPage();
this.cs.openConfirmAddAddress();
//this.cs.openConfirmEitPage();
// this.navCtrl.push("ConfirmAddEitPage", { isResubmit: false });
}
}
@ -1584,16 +1586,17 @@ export class AddAddressComponent implements OnInit {
P_SELECTED_RESP_ID: this.respID, //this.selMenu.List_Menu.RESP_ID,//-999,
P_FUNCTION_NAME: this.selMenu.GetMenuEntriesList.FUNCTION_NAME,
P_DESC_FLEX_CONTEXT_CODE: this.eitResponse[0].DESC_FLEX_CONTEXT_CODE,
P_TRANSACTION_VALUES_TBL: this.arrValues,
EITTransactionTBL: this.arrValues,
P_COUNTRY_CODE: this.country,
P_EFFECTIVE_DATE: '28-June-2021',
P_EFFECTIVE_DATE: moment(this.effectiveDate).format('DD-MMM-YYYY'),
P_ACTION: 'NEW'
};
this.profileService
.submitAddressTransaction(this.eitRequest)
.subscribe((result: any) => {
this.handleEITValidateTr(result);
this.handleSubmitEitResult(result);
// this.handleEITValidateTr(result);
});
}
}
@ -1613,7 +1616,8 @@ export class AddAddressComponent implements OnInit {
this.modalController.dismiss(data);
// this.closemodal();
} else {
this.submitEit();
this.cs.openConfirmAddAddress();
//this.submitEit();
// this.navCtrl.push("ConfirmAddEitPage");
// data = { eitRequest: {}, updated: [] };
// data.eitRequest = this.eitRequest;

@ -1,3 +1,267 @@
<p>
confirm-address works!
</p>
<ion-header>
<ion-toolbar class="header-toolbar-new">
<nav-buttons></nav-buttons>
<ion-title [ngClass]=" direction === 'en' ? 'title' : 'title-ar'" color="light">{{headerTitle}}</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<!-------------------------------Start New design ---------------------------------------->
<ion-grid>
<ion-row style="margin-top: 20px;margin-left: 12px;">
<ion-col>
<div size="10" [ngClass]=" direction === 'en' ? 'approvalTitle' : 'approvalTitle-ar'" >{{'general, addAttach' | translate}}</div>
</ion-col>
<ion-col style="padding-left: 7%;" size="2">
<div class="fileDiv">
<input end class="inputfile" style="margin-top: 10px;z-index: 99999;position: absolute;opacity: 0;" type="file" ng2FileSelect [uploader]="uploader"
(change)="onFileSelected($event)" (click)="onFileSelectedclick($event)" />
<label end for="file" class="attachLable">
<ion-icon style="font-size: 22px;" name="add"></ion-icon>
</label></div>
</ion-col>
</ion-row>
<ion-item class="attachmentDiv" *ngIf="attachListOver?.length == 0">
<ion-img style="height: 26px;width:100%;margin-top:12px" src="../assets/imgs/attach-icon.png"></ion-img>
<ion-label style="margin-top: -24px;" position="floating" class="boldTxtNav">{{ 'general, notAttch' | translate}}</ion-label>
</ion-item>
</ion-grid>
<ion-grid class="attachmentDiv" *ngIf="attachListOver?.length > 0">
<div *ngFor="let attachList of attachListOver ; let i = index">
<ion-row>
<ion-col size="1">
<ion-label style="color: black !important;">
{{attachList.AttachmentID +1 }} .
</ion-label>
</ion-col>
<ion-col style="text-align: left;" size="10">
<ion-label style="color: blue !important;" (click)="OpenAttachFiles(attachList.P_FILE_DATA,attachList.P_FILE_CONTENT_TYPE)">
{{attachList.P_FILE_NAME }}
</ion-label>
</ion-col>
<ion-col size="1">
<!-- <button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachList.P_FILE_DATA,attachList.P_FILE_CONTENT_TYPE)">
<img class="attachImg" src="../assets/imgs/view.png">
</button> -->
<button float-end [disabled]="attachList.isSuccess" class="attachImgBtn removeLable"
(click)="removeFile(attachList)">
<ion-icon style="font-size:22px;margin-left:-7px;margin-top:-2px;" name="close"></ion-icon>
</button>
</ion-col>
</ion-row>
</div>
</ion-grid>
<ion-grid *ngIf="attachmentRes?.length > 0">
<div *ngFor="let attachRes of attachmentRes">
<ion-row>
<ion-col col-8>
<div> <img float-start class="attachImg" src="../assets/imgs/file.png">
</div>
<ion-label>
{{attachRes.FILE_NAME }} </ion-label>
</ion-col>
<ion-col col-4>
<button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachRes.FILE_DATA,attachRes.FILE_CONTENT_TYPE)">
<img class="attachImg" src="../assets/imgs/view.png">
</button>
<button float-end [disabled]="!isResubmitEIT" class="attachImgBtn" (click)="delelteFile(attachRes)"><img
class="attachImg" src="../assets/imgs/deletegray.png"></button>
</ion-col>
<!-- <button [disabled]="!isResubmitEIT" class="iconButton" (click)="addAttachment(false,attachRes)"><img
class="imgSize" src="../assets/imgs/editIcon.png"></button>
<button (click)="delelteFile(attachRes)" class="iconButton" [disabled]="!isResubmitEIT"><img
class="imgSize" src="../assets/imgs/cancel.png"></button> -->
</ion-row>
</div>
</ion-grid>
<ion-grid class="">
<div [ngClass]=" direction === 'en' ? 'approvalTitle' : 'approvalTitle-ar'">{{'confirmAddEit, comment' | translate}}</div>
<ion-item class="submitNote" lines="none">
<!-- <ion-label position="floating" class="boldTxtNav">{{'confirmAddEit, comment' | translate}}</ion-label> -->
<ion-textarea type="text" [(ngModel)]="eitComments"></ion-textarea>
</ion-item>
</ion-grid>
<ion-grid class="approvalList">
<div [ngClass]=" direction === 'en' ? 'approvalTitle' : 'approvalTitle-ar'">{{'confirmAddEit, approverList' | translate}}</div>
<div class="noDataDiv" *ngIf="approversList?.length == 0">
<p>{{ 'general, empty' | translate}}</p>
</div>
<div style="background-color: white;border-radius: 32px;border: 1px solid #c8c4c4;" *ngIf="approversList?.length > 0">
<ion-list class="notification-list ">
<div class="timeline">
<ion-item style="padding-left: 4%;" *ngFor="let employee of approversList">
<div class="timeline-item" slot="start">
<div [class]="direction == 'en'? 'timeline-thumb-en timeline-icon': 'timeline-thumb-ar timeline-icon'">
<img *ngIf="employee.EMPLOYEE_IMAGE" class="empImge"
[src]="'data:image/png;base64,'+employee.EMPLOYEE_IMAGE">
<img *ngIf="employee.EMPLOYEE_IMAGE == null" class="empImge"
src="../assets/imgs/profile.png"> </div>
</div>
<ion-col>
<ion-label style="color:black !important ;font-weight: bold;padding-top: 0%;">
{{employee.APPROVER}}
</ion-label>
<ion-label style="color:black !important ;padding-top: 4%;">
{{employee.POSITION_TITLE}}
</ion-label>
</ion-col>
<div class="line"></div>
</ion-item>
</div>
</ion-list>
</div>
</ion-grid>
<!-------------------------------End New design ---------------------------------------->
<!-- <ion-card>
<ion-card-header class="boxHdr">
<div class="hrTitle">{{'confirmAddEit, approverList' | translate}}</div>
</ion-card-header>
<ion-card-content>
<ion-grid no-padding class=" gridAH" *ngIf="approversList?.length > 0">
<ion-row class="rowAH titleH" nowrap>
<ion-col size="1">
<ion-label class="Header" for="">{{'confirmAddEit, no' | translate}}</ion-label>
</ion-col>
<ion-col size="3">
<ion-label class="Header" for="">{{'confirmAddEit, approver' | translate}}</ion-label>
</ion-col>
<ion-col size="3">
<ion-label class="Header" for="">{{'confirmAddEit, approverCategory' | translate}}</ion-label>
</ion-col>
<ion-col size="3">
<ion-label class="Header" for="">{{'confirmAddEit, approverType' | translate}}</ion-label>
</ion-col>
<ion-col size="2">
<ion-label class="Header" for="">{{'confirmAddEit, status' | translate}}</ion-label>
</ion-col>
</ion-row>
<ion-row class="rowAH" *ngFor="let item of approversList" nowrap>
<ion-col size="1">
<ion-label class="tbData" for="">{{item.APPROVER_ORDER_NUMBER}}</ion-label>
</ion-col>
<ion-col size="3">
<ion-label class="tbData" for="">{{item.APPROVER}}</ion-label>
</ion-col>
<ion-col size="3">
<ion-label class="tbData" for="">{{item.APPROVER_CATEGORY}}</ion-label>
</ion-col>
<ion-col size="3">
<ion-label class="tbData" for="">{{item.APPROVER_TYPE}}</ion-label>
</ion-col>
<ion-col csize="2">
<ion-label class="tbData" for="">{{item.APPROVAL_STATUS}}</ion-label>
</ion-col>
</ion-row>
</ion-grid>
</ion-card-content>
</ion-card>
<ion-item padding>
<ion-label class="boldTxtNav">{{'confirmAddEit, comment' | translate}}</ion-label>
<ion-textarea type="text" [(ngModel)]="eitComments"></ion-textarea>
</ion-item>
<div>
<ion-card>
<ion-card-header class="boxHdr">
<ion-grid no-padding>
<ion-row style="width: 100%;" class="hrTitle" nowrap>
<ion-col size="10">
<ion-text style="font-size: larger;"><b>{{"absenceList, attachList" | translate}}</b></ion-text>
</ion-col>
<ion-col size="2">
<button class="btnBack" ion-button (click)="addAttachment(true,-1)">
<img class="imgSize" src="../assets/imgs/attachment.png"></button>
</ion-col>
</ion-row>
</ion-grid>
</ion-card-header>
<ion-card-content>
<ion-grid *ngIf="attachListOver?.length > 0">
<div *ngFor="let attachList of attachListOver ; let i = index">
<ion-row>
<ion-col col-8>
<div> <img float-start class="attachImg" src="../assets/imgs/file.png">
</div>
<ion-label>
{{attachList.P_FILE_NAME }} </ion-label>
</ion-col>
<ion-col col-4>
<button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachList.P_FILE_DATA,attachList.P_FILE_CONTENT_TYPE)">
<img class="attachImg" src="../assets/imgs/view.png">
</button>
<button float-end [disabled]="attachList.isSuccess" class="attachImgBtn"
(click)="removeFile(attachList)"><img class="attachImg" src="../assets/imgs/deletegray.png"></button>
</ion-col>
</ion-row>
</div>
</ion-grid>
<ion-grid *ngIf="attachmentRes?.length > 0">
<div *ngFor="let attachRes of attachmentRes">
<ion-row>
<ion-col col-8>
<div> <img float-start class="attachImg" src="../assets/imgs/file.png">
</div>
<ion-label>
{{attachRes.FILE_NAME }} </ion-label>
</ion-col>
<ion-col col-4>
<button float-end class="attachImgBtn"
(click)="OpenAttachFiles(attachRes.FILE_DATA,attachRes.FILE_CONTENT_TYPE)">
<img class="attachImg" src="../assets/imgs/view.png">
</button>
<button float-end [disabled]="!isResubmitEIT" class="attachImgBtn" (click)="delelteFile(attachRes)"><img
class="attachImg" src="../assets/imgs/deletegray.png"></button>
</ion-col>
</ion-row>
</div>
</ion-grid>
</ion-card-content>
</ion-card> -->
</ion-content>
<ion-footer>
<div class="centerDiv">
<ion-button class="confirmEitOkButton" color="customnavy" ion-button (click)="openSubmitModal()">
{{ (isDelete ? 'general, delete' : 'general, submit') | translate }}</ion-button>
</div>
</ion-footer>

@ -0,0 +1,263 @@
.footer-button {
border-radius: 2px;
padding: 0 1.1em;
min-height: 45px;
min-width: 200px;
}
.imgSize {
width: 22px;
height: 22px;
}
.Header {
font-weight: bold;
color: #1a586d !important;
font-size: 10px;
}
.tbData {
font-size: 10px;
}
.btnBack {
background: transparent;
float: right;
}
.attachmentDiv{
background: #ffffff;
height: auto;
text-align: center;
padding-top: 1px;
margin: 10px;
border-radius: 15px;
border: 1px solid grey;
}
.noDataDiv{
background: #ffffff;
height: 11%;
text-align: center;
padding-top: 1px;
border-radius: 10px;
margin: 10px;
border-radius: 5px;
}
.submitNote{
background: #ffffff;
height: 80px;
padding-top: 1px;
margin: 10px;
border-radius: 15px;
border: 1px solid grey;
}
.approvalList{
--background: #f0efef;
height: auto;
text-align: center;
padding-top: 1px;
border-radius: 10px;
margin: 10px;
border-radius: 5px;
}
/************************New Design**********************************/
.notification-list{
background: none;
background: none;
border-radius: 32px;
ion-item{
// margin-top: 5px;
// margin-bottom: 5px;
background-color: transparent;
.item-date{
width: 100%;
font-size: 16px;
font-weight: bold;
text-align: start;
padding: 0;
margin: 0;
position: absolute;
left: 0;
top: 12%;
}
ion-label , [item-end]{
white-space: normal;
font-size: 14px;
padding-top: 15%;
// :root[dir="ltr"]{
// margin-left: 10px;
// }
// :root[dir="rtl"]{
// margin-right: 10px;
// }
}
}
}
.timeline {
position: relative;
margin: 15px 0 0 0;
// border-bottom: solid 1px var(--cusgray);
}
.timeline:before {
content: '';
position: inherit !important;
top: 0;
bottom: 0;
width: 4px;
// background: #e4e4e4;
z-index: 1;
left: 35px;
/* margin-left: -10px; */
/* z-index: 1; */
}
.timeline .timeline-thumb {
border-radius: 500px;
width: 70px !important;
z-index: 2;
position: absolute;
left: 0px;
// :root[dir="ltr"]{
// left: 37px;
// }
// :root[dir="rtl"]{
// right: 37px;
// }
float: right;
top: 9px;
}
.timeline .timeline-thumb.timeline-icon {
height: 70px;
// text-align: center;
// color: white;
// border: 5px solid #CBD0D3;
// transform: scale(0.2);
}
.timeline .timeline-item {
width: 40px;
}
.timeline .timeline-stats {
position: relative;
font-size: 12px;
color: var(--darkgray);
}
.empImge{
border-radius: 50%;
width:100%;
height: 100%;
border: #dedede solid 1px;
}
.empImgeRep {
border-radius: 50% !important;
width: 80px;
height: 80px;
border: #dedede solid 1px;
}
.line{
padding-bottom:87px;
}
.attachLable{
position: absolute;
top: 0px;
z-index: 0;
background: #30b8c6;
color: #fff;
border-radius: 50%;
border: 0px;
width: 24px;
height: 24px;
text-align: center;
font-size: 5px;
}
.removeLable{
top: 0px;
z-index: 0;
background: #d8252d;
color: #fff;
border-radius: 50%;
border: 0px;
width: 20px;
height: 20px;
text-align: center;
font-size: 5px;
}
.note-modal {
// width: 90%;
// height: 50%;
// top: 20%;
// left: 5%;
// right: 5%;
// bottom: 5%;
background: rgba(0, 0, 0, 0.5) !important;
padding: 30% 10% !important;
--height: 12cm !important;
// --width: 80% !important;
--border-radius:20px;
}
.header-toolbar-new{
--background: #269DB8;
}
.title{
margin-top: -37px;
margin-left: 85px;
}
.title-ar{
margin-top: -37px;
margin-right: 101px;
}
.confirmEitOkButton{
white-space: normal !important;
text-transform: capitalize !important;
min-height: 45px !important;
min-width: 5px !important;
margin: 8px !important;
background-color: #269DB8;
width: 80% !important;
color: white!important;
border-radius: 16px !important;
}
.approvalTitle-ar{
font-weight: bold;
font-size: 16px;
text-align: right;
}
.approvalTitle{
font-weight: bold;
font-size: 16px;
text-align: left;
}

@ -1,4 +1,20 @@
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
import { FileUploader } from 'ng2-file-upload';
import { AddAttachComponent } from 'src/app/eit/add-attach/add-attach.component';
import { AddEitResponse } from 'src/app/eit/models/add.eit.response';
import { EitRequest } from 'src/app/eit/models/eit.request';
import { NotificationGetAttachResponse } from 'src/app/eit/models/NotificationGetAttachRes';
import { EitService } from 'src/app/eit/services/eit.service';
import { SubmitEitModalComponent } from 'src/app/eit/submit-eit-modal/submit-eit-modal.component';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
import { EITNotificatonBodyResponse } from 'src/app/notification/models/EITNotificationBodyRes';
import { WorkListButtonRequest } from 'src/app/notification/models/NotificationButtonReq';
import { WorkListAttachViewComponent } from 'src/app/notification/work-list-attach-view/work-list-attach-view.component';
import { ProfileService } from '../service/profile.service';
import { SubmitAddressModalComponent } from '../submit-eit-modal/submit-address-modal.component';
@Component({
selector: 'app-confirm-address',
@ -7,8 +23,548 @@ import { Component, OnInit } from '@angular/core';
})
export class ConfirmAddressComponent implements OnInit {
constructor() { }
private P_TransactionID: number;
private eitRequest: EitRequest;
approversList = [];
addrespList: any;//EitRespModel;
eitComments: string = "";
menuType: string = "";
selEmp: string = "";
respID: number;
selMenu: MenuResponse;
getAttachList: any;
attachListDisplay: any = [];
headerTitle: string = "";
isTrue: any = 0;
attachItems: any;
public isResubmitEIT: boolean = false;
private itemKey: string = "";
private pActionMode: string = "SUBMIT";
attachReqObj: WorkListButtonRequest = new WorkListButtonRequest();
attachmentRes: any;
objIndex1: any;
attachListOver: any = [];
index: any = 0;
getPassNotificationDetails: any;
isSubmitBtnClicked: boolean;
isDelete: boolean = false;
/***Add Attchment Vars */
isUpload: boolean = false;
inQueue: boolean = false;
addAttachmentListReq: any;
attachmentID: number = 0;
addAttachRequest: any = [];
fileData: any;
fileType: any;
dirPage: any;
TransactionID: any;
indexLastObj: any = 0;
filterAllowedType: any = ['application/pdf', 'image/jpeg', 'image/png', 'text/plain', 'image/jpg', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'];
direction: string;
constructor(public modalController: ModalController, public cs: CommonService, private ts: TranslatorService, private eitService: EitService, public profileService: ProfileService) {
this.direction = TranslatorService.getCurrentLanguageName()
this.isSubmitBtnClicked = false;
this.eitRequest = new EitRequest();
}
ngOnInit() {
// console.log('ionViewDidLoad ConfirmAddEitPage');
// let selMenu:MenuResponse=new MenuResponse();
this.selMenu = this.cs.sharedService.getSharedData(MenuResponse.SHARED_DATA, false);
this.selEmp = this.cs.sharedService.getSharedData(MenuResponse.SHARED_SEL_EMP, false);
this.respID = this.cs.sharedService.getSharedData(MenuResponse.SHARED_SEL_RESP_ID, false);
this.eitRequest = this.cs.sharedService.getSharedData(EitRequest.SHARED_DATA, false);
// this.isResubmitEIT = this.cs.sharedService.getSharedData('confirmAddEITData', false).isResubmit;
// if (this.isResubmitEIT) {
// this.getPassNotificationDetails = this.cs.sharedService.getSharedData(EITNotificatonBodyResponse.NOT_WORKLIST, false); //WARINING **
// // console.log("this.getPassNotificationDetails: " + this.getPassNotificationDetails);
// this.P_TransactionID = this.cs.sharedService.getSharedData("TransactionIDResubmit", true);
// // let notification = this.cs.sharedService.getSharedData(EITNotificatonBodyResponse.NOT_WORKLIST, true);
// this.itemKey = this.getPassNotificationDetails.ITEM_KEY;
// this.pActionMode = "RESUBMIT";
// this.menuType = "E";
// this.respID = -999;
this.selEmp = this.eitRequest.P_SELECTED_EMPLOYEE_NUMBER;
// this.getApproversList();
// this.getAttachment(this.getPassNotificationDetails.NOTIFICATION_ID);
// let msg: string = "";
// msg = this.ts.trPK("eit", "update-title");
// this.headerTitle = msg;
// } else {
this.menuType = this.selMenu.List_Menu.MENU_TYPE;
this.headerTitle = this.selMenu.GetMenuEntriesList.PROMPT;
this.addrespList = this.cs.sharedService.getSharedData(AddEitResponse.SHARED_DATA, false);
this.itemKey = this.addrespList.SubmitAddressTransactionList.P_ITEM_KEY;
this.P_TransactionID = this.addrespList.SubmitAddressTransactionList.P_TRANSACTION_ID;
this.isDelete = this.isResubmitEIT = this.cs.sharedService.getSharedData('confirmAddEITData', false).isDelete;
this.getApproversList();
// this.confirmAddEit.submitEit(this.eitRequest).subscribe((result: AddEitResponse) => {
// this.handleSubmitEitResult(result);
// });
//}
}
getApproversList() {
let body: any = {
P_TRANSACTION_ID: this.P_TransactionID,
P_AME_TRANSACTION_TYPE: "SSHRMS",
P_PAGE_NUM: 1,
P_PAGE_LIMIT: 1000
}
this.eitService.getApproversList(
body).
subscribe((result: any) => {
this.handleApproversResult(result);
});
}
handleApproversResult(result) {
if (this.cs.validResponse(result)) {
this.approversList = result.GetApprovesList;
// console.log("approvers List" + this.approversList);
}
}
startEitApproval() {
//first call add attach inside success call submit
// if(this.isResubmitEIT){
// this.startEITApprovalProcess();
// }else{
// let listToAdd:any=[];
if (this.attachListOver) {
// this.attachListOver.forEach(element => {
// if(element.toAdd==true)
// listToAdd.push(element);
// });
let request = {
AddAttachmentList: this.attachListOver
}
this.eitService.addAttachment(
request).
subscribe((result: any) => {
this.handleAddAttachmentResults(result);
});
} else {
this.startEITApprovalProcess();
}
// }
}
handleAddAttachmentResults(result) {
if (this.cs.validResponse(result)) {
//this.isUpload=true;
this.isTrue = 0;
for (let i = 0; i < result.AddAttSuccessList.length; i++) {
if (!result.AddAttSuccessList[i].AddSuccess) {
this.attachListOver[i].isSuccess = false;
//this.attachItems[i].isSuccess = false;
// if false display cancel button with waring icon or design
}// end if
else {
// if true remove cancel and set isSuccess = true
// this.attachItems[i].isSuccess = true;
this.attachListOver[i].isSuccess = true;
this.isTrue = this.isTrue + 1; //count flag of attach status
} // end else
} // end for
if (this.isTrue == result.AddAttSuccessList.length) {
this.startEITApprovalProcess();
}
else {
//stope
let filtered = this.attachListOver.filter(function (el) { return el.isSuccess == true; });
this.attachListOver = filtered;
let msg: string = "";
msg = this.ts.trPK("eit", "attach-errorMsg");
this.cs.presentAlert(msg);
// this.cs.presentAlert("fail to upload some attach file");
}
}
}
startEITApprovalProcess() {
let request: any = {};
request.P_SELECTED_EMPLOYEE_NUMBER = this.selEmp;
request.P_MENU_TYPE = this.menuType;
request.P_SELECTED_RESP_ID = this.respID;
request.P_TRANSACTION_ID = this.P_TransactionID;
request.P_ITEM_KEY = this.itemKey;
request.P_ACTION_MODE = this.pActionMode;
request.P_COMMENTS = this.eitComments;
this.profileService.startEitApprovalProcess(
request).
subscribe((result: any) => {
this.handleResults(result);
});
}
cancelEitProcess() {
let body: any = {
P_TRANSACTION_ID: this.P_TransactionID
}
this.eitService.cancelHRTransaction(
body).
subscribe((result: any) => {
this.handleCancelResults(result);
});
}
handleCancelResults(result) {
if (this.cs.validResponse(result)) {
this.isSubmitBtnClicked = false;
// this.navCtrl.popToRoot();
}
}
handleResults(result) {
if (this.cs.validResponse(result)) {
this.isSubmitBtnClicked = true;
//if(this.isResubmitEIT==false){
let msg: string = this.ts.trPK("eit", "approval-message-success");
this.cs.presentAlert(msg);
// }
// this.navCtrl.popToRoot();
// this.cs.openHome();
this.cs.openNotificationPage();
}
}
// addAttachment(){
// this.navCtrl.push('AddAttachPage');
// }
async addAttachment(str: boolean, attachItems: any) {
// console.log("inside attach modal");
//open the modal with return data
let attachDocID = attachItems.ATTACHED_DOCUMENT_ID;
this.cs.sharedService.setSharedData(this.P_TransactionID, 'TransactionID');
this.cs.sharedService.setSharedData(this.attachListOver.length, 'indexLastObj');
const modal = await this.modalController.create({
component: AddAttachComponent
});
modal.onDidDismiss()
.then((data) => {
if (data == "cancel" || data == "undefined") {
return;
} else {
if (!str) {
// this.attachItems = data.map(function(el) {
// var o = Object.assign({}, el);
// o.isSuccess = false;
// return o;
// })
// this.objIndex1 =this.attachmentRes.findIndex(item => item == attachItems); //to use it in remove attach
//.ATTACHED_DOCUMENT_ID
this.updateFile(data, attachDocID);
} else {
console.log(data);
this.attachListDisplay = data.data;
this.attachItems = this.attachListDisplay.map(function (el) {
var o = Object.assign({}, el);
o.isSuccess = false;
return o;
});
this.attachListOver = this.attachListOver ? this.attachListOver.concat(this.attachItems) : this.attachItems;
// this.attachListOver = this.attachListDisplay;
}
// this.attachListDisplay=data;
// this.attachItems = this.attachListDisplay.map(function(el) {
// var o = Object.assign({}, el);
// o.isSuccess = false;
// return o;
// })
}
});
return await modal.present();
}
/*****submit modal********/
async openSubmitModal() {
this.cs.sharedService.setSharedData(this.attachListOver, 'submitAttachmentList');
this.cs.sharedService.setSharedData(this.eitComments, 'eitComments');
const modal = await this.modalController.create({
component: SubmitAddressModalComponent,
backdropDismiss: false,
});
modal.cssClass = 'note-modal';
modal.onDidDismiss()
.then((data) => {
console.log(data.data);
if (data.data == "cancel" || data.data == undefined) {
return;
} else {
this.startEitApproval();
}
});
return await modal.present();
}
removeFile(objectitem) {
// if (this.attachItems) {
// let index1 = this.attachItems.findIndex(item => item == objectitem);
// if (index1 > -1) {
// this.attachItems.splice(index1, 1);
// }
// this.attachListDisplay =this.attachListDisplay.filter(item => item.AttachmentID !== objectitem.AttachmentID);
// }
if (this.attachListOver) {
let index2 = this.attachListOver.findIndex(item => item == objectitem);
if (index2 > -1) {
this.attachListOver.splice(index2, 1);
}
//this.attachListOver =this.attachListOver.filter(item => item.AttachmentID !== objectitem.AttachmentID);
}
if (this.attachmentRes) {
let index3 = this.attachmentRes.findIndex(item => item == objectitem);
if (index3 > -1) {
this.attachmentRes.splice(index3, 1);
}
}
}
getAttachment(NotificationID) {
this.attachReqObj.P_NOTIFICATION_ID = NotificationID;
this.eitService.getAttach(this.attachReqObj).
subscribe((result: NotificationGetAttachResponse) => {
this.handleWorkListAttachResult(result);
});
}
handleWorkListAttachResult(result) {
if (this.cs.validResponse(result)) {
// this.sharedData.setSharedData(result, WorKListResponse.SHARED_DATA);
if (result.GetAttachementList != null) {
this.attachmentRes = result.GetAttachementList;
} // if result == null
} // valid it
}
async OpenAttachFiles(value, Type) {
// let modal: Modal = this.modalCtrl.create('WorkListAttachViewPage', { displayData: value, TypeData: Type });
// modal.present();
this.cs.sharedService.setSharedData({ displayData: value, TypeData: Type }, 'WorkListAttachViewPage');
const modal = await this.modalController.create({
component: WorkListAttachViewComponent
});
modal.onDidDismiss()
.then((data) => {
});
return await modal.present();
}
delelteFile(attach) {
// let alert = this.cs.confirmAlertDialog(this.translate.translate('general.deletePerm'));
this.cs.confirmAlertDialog((data) => {
if (data == true) {
this.continueDelete(attach);
}
}, this.ts.trPK('general', 'ok'), () => {
}, this.ts.trPK('general', 'cancel'), this.ts.trPK('general', 'alert'), this.ts.trPK('eit', 'delete-perm'));
// alert.onDidDismiss((data) => {
// if (data == true) {
// this.continueDelete(attach);
// }
// });
}
continueDelete(attach) {
// console.log("trst" + attach.ATTACHED_DOCUMENT_ID);
let req = {
P_ATTACHED_DOCUMENT_ID: attach.ATTACHED_DOCUMENT_ID
}
this.eitService.deleteAttach(req).
subscribe((result: any) => {
if (this.cs.validResponse(result)) {
if (result.DeleteAttachmentList.P_RETURN_STATUS === "S") {
this.getAttachment(this.getPassNotificationDetails.NOTIFICATION_ID);
let msg: string = "";
msg = this.ts.trPK("eit", "deleteAttach");
this.cs.presentAlert(msg);
//this.cs.presentAlert("Success" );
}
}
});
}
updateFile(attachList, attachDocID) {
//console.log("updateFile" + attachDocID.ATTACHED_DOCUMENT_ID);
let req = {
P_ATTACHED_DOCUMENT_ID: attachDocID,
P_FILE_DATA: attachList[0].P_FILE_DATA,
P_FILE_NAME: attachList[0].P_FILE_NAME,
P_FILE_CONTENT_TYPE: attachList[0].P_FILE_CONTENT_TYPE
}
this.eitService.updateAttach(req).
subscribe((result: any) => {
if (this.cs.validResponse(result)) {
if (result.MessageStatus == 1) {
let msg: string = "";
msg = this.ts.trPK("eit", "attachUpdate");
this.cs.presentAlert(msg);
// this.cs.presentAlert("updated attach successfully" );
//flag to disable update and enable remove
// this.removeFile(attachList);
this.getAttachment(this.getPassNotificationDetails.NOTIFICATION_ID);
}
} // val
});
}
ionViewWillLeave() {
if (this.P_TransactionID && this.isSubmitBtnClicked == false)
this.cancelEitProcess();
}
/*******************Add attchement Functions*************/
public uploader: FileUploader = new FileUploader({
allowedMimeType: ['application/pdf', 'image/jpeg', 'image/png', 'text/plain', 'image/jpg', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
maxFileSize: 10 * 1024 * 1024,
formatDataFunctionIsAsync: true,
formatDataFunction: async (item) => {
return new Promise((resolve, reject) => {
resolve({
name: item._file.name,
length: item._file.size,
contentType: item._file.type,
date: new Date()
});
});
}
});
onFileSelectedclick(event) {
event.target.value = '';
}
onFileSelected(input) {
// this.uploader.onWhenAddingFileFailed = function (item: any, filter: any, options: any){
if (!(this.filterAllowedType.indexOf(input.target.files[0].type) > -1)) {
let msg: string = "";
msg = this.ts.trPK("general", "notSupport");
this.cs.presentAlert(msg);
return
} // todo: show alert that you tried uploading wrong files
else {
const file = input.target.files[0];
// console.log(file);
//var encoded = Base64.encode(file);
this.getBase64(file).then(
data => this.pushObject(data, file.name, file.type)
);
// }
// };
}
}
getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
}
pushObject(fileData, name, type) {
console.log("before push: " + this.index);
//this.attachListOver.length++;
try {
let array = name.split('.');
let attachType: string = array[array.length - 1];
this.attachListOver.push(
{
AttachmentID: this.attachListOver.length,
P_FILE_CONTENT_TYPE: attachType,//type.split('/')[1],
P_FILE_DATA: fileData.split(',')[1],
P_FILE_NAME: name,//.split('.')[0],
P_TRANSACTION_ID: this.P_TransactionID
})
} catch (e) {
}
//console.log("after push: "+ this.index);
// return this.addAttachRequest
}
// removeFile(objectitem) {
// let objIndex1 = this.uploader.queue.findIndex(item => item == objectitem);
// this.uploader.queue.splice(objIndex1, 1);
// let objIndex = this.addAttachRequest.findIndex(item => item.AttachmentID == objectitem.AttachmentID);
// this.addAttachRequest.splice(objIndex, 1);
// // this.addAttachRequest =this.addAttachRequest.filter(item => item.AttachmentID !== objectitem.AttachmentID);
// }
ngOnInit() {}
}

@ -193,8 +193,8 @@
<h1 class="header-label-text-form">{{ts.trPK('general','main-address')}}</h1>
</ion-label>
</ion-col>
<ion-col size="2" *ngIf="addressSubMenu && addressSubMenu.UPDATE_BUTTON === 'Y'" (click)="allowEdit('address')">
<!-- *ngIf="addressSubMenu && addressSubMenu.UPDATE_BUTTON === 'Y'" -->
<ion-col size="2" (click)="allowEdit('address')">
<img style="width: 70%;" src="../assets/imgs/profile-icons/editing@2x.png"
(click)="allowEdit('address')">
</ion-col>

@ -19,6 +19,8 @@ import { from } from 'rxjs';
import { EditDetailProfileComponent } from './modal/edit-detail-profile/edit-detail-profile.component';
import { AddBasicDetailsComponent } from './add-basic-details/add-basic-details.component';
import { AddAddressComponent } from './add-address/add-address.component';
import { ConfirmAddressComponent } from './confirm-address/confirm-address.component';
import { SubmitAddressModalComponent } from './submit-eit-modal/submit-address-modal.component';
const routes: Routes = [
{
@ -32,6 +34,10 @@ const routes: Routes = [
{
path: 'add-address',
component: AddAddressComponent
},
{
path: 'confirm-add-address',
component: ConfirmAddressComponent
}
],
},
@ -74,8 +80,8 @@ const routes: Routes = [
component: ProfilePage,
children: [
{
path: 'addBasicDetails',
component: AddBasicDetailsComponent
path: 'addBasicDetails',
component: AddBasicDetailsComponent
}
],
}
@ -99,8 +105,10 @@ const routes: Routes = [
ProfileImageComponent,
EditProfileComponent,
PerformanceEvaluationComponent,
ConfirmAddressComponent,
SubmitAddressModalComponent,
AddBasicDetailsComponent],
entryComponents: [EditDetailProfileComponent],
entryComponents: [EditDetailProfileComponent, SubmitAddressModalComponent],
providers: [DatePicker]
})
export class ProfilePageModule { }

@ -6,9 +6,9 @@ import { AuthenticationService } from "src/app/hmg-common/services/authenticatio
providedIn: 'root'
})
export class ProfileService {
public static updateEmpImage ="Services/ERP.svc/REST/UPDATE_EMPLOYEE_IMAGE";
public static getEmployeeBasicDetails ="Services/ERP.svc/REST/GET_EMPLOYEE_BASIC_DETAILS";
/* EIT Services URLs */
public static updateEmpImage = "Services/ERP.svc/REST/UPDATE_EMPLOYEE_IMAGE";
public static getEmployeeBasicDetails = "Services/ERP.svc/REST/GET_EMPLOYEE_BASIC_DETAILS";
/* EIT Services URLs */
public static getMenuEntries = 'Services/ERP.svc/REST/GET_MENU_ENTRIES';
public static getEITTransctions = 'Services/ERP.svc/REST/GET_EIT_TRANSACTIONS';
public static getBASICDFFStrutre = 'Services/ERP.svc/REST/GET_BASIC_DET_DFF_STRUCTURE';
@ -18,92 +18,97 @@ export class ProfileService {
public static validateEITTransctions = 'Services/ERP.svc/REST/VALIDATE_EIT_TRANSACTION';
public static submitEit = 'Services/ERP.svc/REST/SUBMIT_EIT_TRANSACTION';
public static resubmitEit = 'Services/ERP.svc/REST/RESUBMIT_EIT_TRANSACTION';
public static startEitProcess = 'Services/ERP.svc/REST/START_EIT_APPROVAL_PROCESS';
public static startEitProcess = 'Services/ERP.svc/REST/START_ADDRESS_APPROVAL_PROCESS';
public static updateAttach = 'Services/ERP.svc/REST/UPDATE_ATTACHMENT';
public static deleteAttach = 'Services/ERP.svc/REST/DELETE_ATTACHMENT';
public static getApproversList = 'Services/ERP.svc/REST/GET_APPROVERS_LIST';
public static addAttachment = 'Services/ERP.svc/REST/ADD_ATTACHMENT';
public static cancelHRTransaction = 'Services/ERP.svc/REST/CANCEL_HR_TRANSACTION';
public static getAttach = 'Services/ERP.svc/REST/GET_ATTACHMENTS';
public static getEmployeeAddress = "Services/ERP.svc/REST/GET_EMPLOYEE_ADDRESS";
public static getCountries = "Services/ERP.svc/REST/GET_COUNTRIES";
public static getDiffStructure = "Services/ERP.svc/REST/GET_ADDRESS_DFF_STRUCTURE"
public static submitAddressTransactions = "Services/ERP.svc/REST/SUBMIT_ADDRESS_TRANSACTION"
constructor(
public con: ConnectorService,
public authService: AuthenticationService
) {}
constructor(
public con: ConnectorService,
public authService: AuthenticationService
) { }
public updateImageProfile( updateImgRequest: any,onError?: any,errorLabel?: string
): Observable<any> {
const request = updateImgRequest;
this.authService.authenticateRequest(request);
return this.con.post(
ProfileService.updateEmpImage,
request,
onError,
errorLabel
);
}
public updateImageProfile(updateImgRequest: any, onError?: any, errorLabel?: string
): Observable<any> {
const request = updateImgRequest;
this.authService.authenticateRequest(request);
return this.con.post(
ProfileService.updateEmpImage,
request,
onError,
errorLabel
);
}
public getEmployeeAddress(basicEmployeeDetailsRequest: any, onError?: any, errorLabel?: string): Observable<any> {
const request = basicEmployeeDetailsRequest;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getEmployeeAddress, request, onError, errorLabel);
}
public getEmployeeAddress(basicEmployeeDetailsRequest: any, onError?: any, errorLabel?: string): Observable<any> {
const request = basicEmployeeDetailsRequest;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getEmployeeAddress, request, onError, errorLabel);
}
public getEmployeeBasicDetails(basicEmployeeDetailsRequest: any, onError?: any, errorLabel?: string): Observable<any> {
const request = basicEmployeeDetailsRequest;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getEmployeeBasicDetails, request, onError, errorLabel);
}
public getEmployeeBasicDetails(basicEmployeeDetailsRequest: any, onError?: any, errorLabel?: string): Observable<any> {
const request = basicEmployeeDetailsRequest;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getEmployeeBasicDetails, request, onError, errorLabel);
}
public getBasicDFFStrutre(BASICDFFStrutreReq: any, onError?: any, errorLabel?: string): Observable<any> {
const request = BASICDFFStrutreReq;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getBASICDFFStrutre, request, onError, errorLabel);
}
public getBasicDFFStrutre(BASICDFFStrutreReq: any, onError?: any, errorLabel?: string): Observable<any> {
const request = BASICDFFStrutreReq;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getBASICDFFStrutre, request, onError, errorLabel);
}
public getColumnStructure(body: any, onError?: any, errorLabel?: string): Observable<any> {
const request = body;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getBASICCOLStructure, request, onError, errorLabel);
}
public getColumnStructure(body: any, onError?: any, errorLabel?: string): Observable<any> {
const request = body;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getBASICCOLStructure, request, onError, errorLabel);
}
public getDefaultValue(DefaultValueReq: any, onError?: any, errorLabel?: string): Observable<any> {
const request = DefaultValueReq;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getDefaultValue, request, onError, errorLabel);
}
public getDefaultValue(DefaultValueReq: any, onError?: any, errorLabel?: string): Observable<any> {
const request = DefaultValueReq;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getDefaultValue, request, onError, errorLabel);
}
public getSetValue(SetValueReq: any, onError?: any, errorLabel?: string): Observable<any> {
const request = SetValueReq;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getSetValue, request, onError, errorLabel);
}
public getSetValue(SetValueReq: any, onError?: any, errorLabel?: string): Observable<any> {
const request = SetValueReq;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getSetValue, request, onError, errorLabel);
}
public submitEit(eit: any, onError?: any, errorLabel?: string): Observable<any> {
const request = eit;
request.EITTransactionTBLModel = eit.EITTransactionTBL;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.submitEit, request, onError, errorLabel);
}
public submitEit(eit: any, onError?: any, errorLabel?: string): Observable<any> {
const request = eit;
request.EITTransactionTBLModel = eit.EITTransactionTBL;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.submitEit, request, onError, errorLabel);
}
public getCountries(basicEmployeeDetailsRequest: any, onError?: any, errorLabel?: string): Observable<any> {
const request = basicEmployeeDetailsRequest;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getCountries, request, onError, errorLabel);
}
public getAddressDiffStructure(basicEmployeeDetailsRequest: any, onError?: any, errorLabel?: string): Observable<any> {
const request = basicEmployeeDetailsRequest;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getDiffStructure, request, onError, errorLabel);
}
public submitAddressTransaction(validateEITTransactionReq: any, onError?: any, errorLabel?: string): Observable<any> {
const request = validateEITTransactionReq;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.submitAddressTransactions, request, onError, errorLabel);
}
public getCountries(basicEmployeeDetailsRequest: any, onError?: any, errorLabel?: string): Observable<any> {
const request = basicEmployeeDetailsRequest;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getCountries, request, onError, errorLabel);
}
public getAddressDiffStructure(basicEmployeeDetailsRequest: any, onError?: any, errorLabel?: string): Observable<any> {
const request = basicEmployeeDetailsRequest;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.getDiffStructure, request, onError, errorLabel);
}
public submitAddressTransaction(validateEITTransactionReq: any, onError?: any, errorLabel?: string): Observable<any> {
const request = validateEITTransactionReq;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.submitAddressTransactions, request, onError, errorLabel);
}
public startEitApprovalProcess(eitProcess: any, onError?: any, errorLabel?: string): Observable<any> {
const request = eitProcess;
this.authService.authenticateRequest(request);
return this.con.post(ProfileService.startEitProcess, request, onError, errorLabel);
}
}

@ -0,0 +1,39 @@
<ion-content padding>
<!--
<ion-col col-1
style="margin-right: -22px;margin-top: -10px;">
<ion-button class="closeIcon" (click)="closeModal()">
<img src="../assets/imgs/close.png">
</ion-button>
</ion-col> -->
<h2><div class="Header">{{'eit,confirmation' | translate}}</div></h2>
<div>
<div *ngIf="submitAttachmentList.length==0" class="labelcheck" lines="none" style="text-align: center;">
{{'eit,no-attachment' | translate}}
</div>
<div *ngIf="eitComments==''" class="labelcheck" style="text-align: center;margin-bottom: 5px;padding-bottom: 16px;">
{{'eit,no-note' | translate}}
</div>
</div>
<ion-footer style="border-top: 1px solid grey !important;">
<ion-row class="rowBtn">
<ion-label class="labelRadio">{{'eit,submit' | translate}}</ion-label>
<ion-button class="submitOkButton" (click)="OkBtnModal()"> {{ts.trPK('general','ok')}}
</ion-button>
</ion-row>
<ion-row class="rowBtn">
<ion-button class="submitCancelButton" (click)="closeModal()"> {{ts.trPK('general','cancel')}}
</ion-button>
</ion-row>
</ion-footer>
</ion-content>

@ -0,0 +1,53 @@
.rowBtn{
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.Header{
color: black !important;
font-size: 25px !important;
font-weight: bold !important;;
margin: 0;
text-align: center;
margin-bottom: 20px;
}
.labelRadio{
color: black !important;
font-weight: bold !important;
padding-bottom: 20px;
}
.labelcheck{
color: red !important;
font-weight: bold !important;
margin-bottom: 10px;
}
.submitOkButton{
white-space: normal !important;
text-transform: capitalize !important;
min-height: 45px !important;
min-width: 5px !important;
margin: 8px !important;
--background:: #269DB8;
width: 100% !important;
color: white!important;
border-radius: 16px !important;
}
.submitCancelButton{
white-space: normal !important;
text-transform: capitalize !important;
min-height: 45px !important;
min-width: 5px !important;
margin: 8px !important;
--background:: #269DB8;
width: 100% !important;
color: white!important;
border-radius: 16px !important;
}

@ -0,0 +1,27 @@
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { SubmitAddressModalComponent } from './submit-address-modal.component';
describe('SubmitEitModalComponent', () => {
let component: SubmitAddressModalComponent;
let fixture: ComponentFixture<SubmitAddressModalComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [SubmitAddressModalComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SubmitAddressModalComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

@ -0,0 +1,36 @@
import { Component, OnInit } from '@angular/core';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { ModalController } from '@ionic/angular';
import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service';
@Component({
selector: 'app-submit-eit-modal',
templateUrl: './submit-address-modal.component.html',
styleUrls: ['./submit-address-modal.component.scss'],
})
export class SubmitAddressModalComponent implements OnInit {
submitAttachmentList: any = [];
eitComments: string;
constructor(public ts: TranslatorService, private modalCtrl: ModalController, private cs: CommonService) {
this.submitAttachmentList = this.cs.sharedService.getSharedData('submitAttachmentList', false);
this.eitComments = this.cs.sharedService.getSharedData('eitComments', false);
}
ngOnInit() {
console.log("modal");
//this.actionBtns = this.cs.sharedService.getSharedData("passActionMore" , false);
console.log("modal");
}
closeModal() {
this.modalCtrl.dismiss();
}
OkBtnModal() {
let data = "ok";
this.modalCtrl.dismiss(data);
}
}

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="11.569" height="8.325" viewBox="0 0 11.569 8.325">
<path id="Path_4528" data-name="Path 4528" d="M11.3,72.057a.918.918,0,0,0-1.3,0L4.162,77.9l-2.6-2.6a.918.918,0,0,0-1.3,1.3l3.244,3.244a.918.918,0,0,0,1.3,0L11.3,73.355A.918.918,0,0,0,11.3,72.057Z" transform="translate(0 -71.788)" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 351 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="11.569" height="8.325" viewBox="0 0 11.569 8.325">
<path id="Path_4528" data-name="Path 4528" d="M11.3,72.057a.918.918,0,0,0-1.3,0L4.162,77.9l-2.6-2.6a.918.918,0,0,0-1.3,1.3l3.244,3.244a.918.918,0,0,0,1.3,0L11.3,73.355A.918.918,0,0,0,11.3,72.057Z" transform="translate(0 -71.788)" fill="#969696"/>
</svg>

After

Width:  |  Height:  |  Size: 354 B

Before

Width:  |  Height:  |  Size: 954 B

After

Width:  |  Height:  |  Size: 954 B

@ -35,20 +35,32 @@
src: url('../assets/font/WorkSans-Bold.otf');
}
@font-face {
font-family: Poppins-Bold;
src: url('../assets/font/Poppins/Poppins-Bold.ttf');
}
@font-face {
font-family: Poppins-Medium;
src: url('../assets/font/Poppins/Poppins-Medium.ttf');
}
@font-face {
font-family: Poppins;
src: url('../assets/font/Poppins/Poppins-Regular.ttf');
}
:root {
--ion-font-family: 'WorkSans-Light';
--ion-font-family: 'Poppins';
--break-small: 450px;
--break-big:565px;
//$break-large: 1200px;
--fontFamilyLightEN:'WorkSans-Light';
--fontFamilyLightEN:'Poppins';
--ontFamilyLightAR:'GE_SS_Two_Light';
--fontFamilyRegularEN:'WorkSans-Regular';
--fontFamilyRegularEN:'Poppins';
--fontFamilyRegularAR:'GE_SS_TWO_MEDIUM';
--fontFamilyMediumEN:'WorkSans-Regular';
--fontFamilyMediumEN:'Poppins-Regular';
--fontFamilyMediumAR:'GE_SS_TWO_MEDIUM';
--fontFamilyBoldEN:'WorkSans-Bold';
--fontFamilyBoldEN:'Poppins-Bold';
--fontFamilyBoldAR:'GE_SS_Two_Bold';
--fontFamilySemiBoldEN:'WorkSans-SemiBold';
--fontFamilySemiBoldEN:'Poppins-Bold';
--fontFamilySemiBoldAR:'GE_SS_Two_Bold';
--fontFamilyIOSAR:-apple-system, "Helvetica Neue", "Roboto", sans-serif;
--fontFamilyAndroidAR:"Roboto", "Helvetica Neue", sans-serif;

Loading…
Cancel
Save