added time card detail and its summary

timecard
umasoodch 6 years ago
parent ee7ac90c18
commit 167973cedb

@ -584,15 +584,15 @@ export class ConfirmLoginComponent implements OnInit {
clientId: "Fingerprint Authetnciation",
// clientId: "Fingerprint Authetnciation",
clientSecret: "Ate343_9347lajF", // Only necessary for Android
// clientSecret: "Ate343_9347lajF", // Only necessary for Android
disableBackup: true, // Only for Android(optional)
// disableBackup: true, // Only for Android(optional)
localizedFallbackTitle: this.ts.trPK("general", "use-pin"), // Only for iOS
// localizedFallbackTitle: this.ts.trPK("general", "use-pin"), // Only for iOS
localizedReason: this.ts.trPK("general", "auth-please") // Only for iOS
// localizedReason: this.ts.trPK("general", "auth-please") // Only for iOS
})

@ -21,23 +21,22 @@
<div [ngClass]="{'selectedDiv': selectedMenu == i,'notSelected': selectedMenu != i }">
<ion-text>
<b>{{menuItem.PROMPT}}</b>
</ion-text>
</div>
<!-- Child Pages -->
<ion-list [hidden]="selectedMenu != i">
<ion-list [hidden]="selectedMenu != i" *ngIf="menuItem.PROMPT != 'Time And Attendance'">
<ion-item lines="none" class="childItem" *ngFor="let subPage of menuItem.children;let i2=index" text-wrap
(click)="openPage(subPage)">
<ion-row>
<ion-col size="12" class="menu-name"><span ion-text color="color2">&nbsp;{{subPage.PROMPT}}</span>
</ion-col>
</ion-col>
</ion-row>
</ion-item>
</ion-list>
</ion-col>
</ion-row>
<ion-icon [name]="selectedMenu == i? 'ios-arrow-down' : 'ios-arrow-forward'"
*ngIf="menuItem.children && menuItem.MENU_ENTRY_TYPE=='MENU'" slot="end" class="arrow-down"></ion-icon>
*ngIf="menuItem.children && menuItem.MENU_ENTRY_TYPE=='MENU' && menuItem.PROMPT != 'Time And Attendance'" slot="end" class="arrow-down"></ion-icon>
</ion-item>
</ion-list>
</ion-content>

@ -29,7 +29,7 @@ export class HomeComponent implements OnInit {
openPage(page, index) {
// Reset the content nav to have just this page
// we wouldn't want the back button to show in this scenario
if (page.children.length == 0) {
if (page.children.length == 0 || page.PROMPT == 'Time And Attendance') {
this.goToRequest(page);
} else {
if (this.selectedMenu == 0) {
@ -55,6 +55,10 @@ export class HomeComponent implements OnInit {
if (menuEntry.REQUEST_TYPE =='PAYSLIP'){
this.cs.openPayslipPage();
}
if (menuEntry.PROMPT == 'Time And Attendance'){
this.cs.openTimeCardPage();
}
}
}

@ -1071,6 +1071,9 @@ export class CommonService {
public openPayslipPage() {
this.nav.navigateForward(["/payslip/home"]);
}
public openTimeCardPage() {
this.nav.navigateForward(["/time-card/home"]);
}
public openEarningsPage() {
this.nav.navigateForward(["/payslip/Earnings"]);
}

@ -1,3 +1,29 @@
<p>
home works!
</p>
<ion-header>
<ion-toolbar class="header-toolbar-new">
<ion-title color="light" >Time and Attendance</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div *ngFor="let timeCard of timeCardOptions ; let i = index">
<ion-card (click)="openDetailPage(i)">
<ion-card-content>
<ion-grid class="" >
<ion-row class="">
<ion-col size="4" class="time-card-image">
<img class=""
src="../assets/imgs/time-card/{{timeCard.imageName}}">
</ion-col>
<ion-col size="6" class="time-card-details">
<h1 class="time-card-heading">{{timeCard.heading}}</h1>
<span class="time-card-description">{{timeCard.description}}</span>
</ion-col>
<ion-col size="2">
<img class="time-card-rightIcon"
src="../assets/imgs/time-card/ArrowRight.png">
</ion-col>
</ion-row>
</ion-grid>
</ion-card-content>
</ion-card>
</div>
</ion-content>

@ -0,0 +1,54 @@
ion-header{
overflow: hidden;
}
ion-content{
--ion-background-color: #f2f2f3;
}
ion-card-content {
padding: 0px;
}
ion-card {
box-shadow: none !important;
background-color: white;
margin: 10px 30px;
}
ion-header {
background: #f2f2f3;
}
ion-title{
text-align: center;
font-family: WorkSans-Bold;
font-size: 18px;
}
.header-toolbar-new{
--background: linear-gradient(90deg, rgba(132,198,143,1) 0%, rgba(41,183,197,1) 100%);
border-bottom-right-radius: 30px;
border-bottom-left-radius: 30px;
}
.time-card-image{
padding: 10px;
}
.time-card-details{
padding: 0px;
margin-top: 25px;
line-height: 10px;
}
.time-card-heading{
font-weight: bold;
font-size: 13px;
color: #666666;
font-family: WorkSans-Bold;
}
.time-card-description{
font-size: 10px;
}
.time-card-rightIcon{
padding: 8px;
margin-top: 18px;
}

@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core';
import { NavController } from '@ionic/angular';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
@ -7,8 +7,38 @@ import { Component, OnInit } from '@angular/core';
})
export class HomeComponent implements OnInit {
constructor() { }
public timeCardOptions: any = [
{
imageName: 'MyTimeCard.png',
heading: 'My Time Card',
description: 'View your attendance records.',
pageLink: '/time-card/time-card-details'
},
{
imageName: 'Timeback.png',
heading: 'Time Back',
description: 'View and use your extra work time.',
pageLink: '/time-card/home'
},
{
imageName: 'MissingSwipe.png',
heading: 'Missing Swipe',
description: 'Resolve swipe and attendance records',
pageLink: '/time-card/home'
},
{
imageName: 'WorkOnBreak.png',
heading: 'Work on Break',
description: 'Record your work time in during break.',
pageLink: '/time-card/home'
}
];
constructor(public nav: NavController) {}
ngOnInit() {}
public openDetailPage() {
this.nav.navigateForward(['/time-card/time-card-details']);
}
}

@ -0,0 +1,51 @@
<ion-content>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
<p>
select-period works!
</p>
</ion-content>
<div class="footer-modal-button">
<button ion-button (click)="dismiss()">
Select Period
</button>
</div>

@ -0,0 +1,12 @@
.footer-modal-button{
position: absolute;
bottom: 0;
color: white;
width: 100%;
text-align: center;
}
.footer-modal-button button{
font-size: 20px;
background: white;
line-height: 2;
}

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

@ -0,0 +1,21 @@
import { Component, OnInit } from '@angular/core';
import { ModalController } from '@ionic/angular';
@Component({
selector: 'app-select-period',
templateUrl: './select-period.component.html',
styleUrls: ['./select-period.component.scss'],
})
export class SelectPeriodComponent implements OnInit {
constructor(public modalController: ModalController) { }
ngOnInit() {}
public dismiss() {
this.modalController.dismiss({
dismissed: true
});
}
}

@ -1,27 +1,27 @@
import { Injectable } from "@angular/core";
import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service";
import { ConnectorService } from "src/app/hmg-common/services/connector/connector.service";
import { Request } from "src/app/hmg-common/services/models/request";
import { Injectable } from '@angular/core';
import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service';
import { ConnectorService } from 'src/app/hmg-common/services/connector/connector.service';
import { Request } from 'src/app/hmg-common/services/models/request';
import { Observable } from "rxjs";
import { GetShiftTypeResponse } from "./models/get-shift-type.response";
import { GetDayAndHoursDetailsResponse } from "./models/get-day-hours-type-details.response";
import { GetTimeCardSummaryResponse } from "./models/get-time-card-summary.response";
import { GetShiftDetailResponse } from "./models/get-shift-detail.response";
import { GetSwipesResponse } from "./models/get-swipes-response";
import { Observable } from 'rxjs';
import { GetShiftTypeResponse } from './models/get-shift-type.response';
import { GetDayAndHoursDetailsResponse } from './models/get-day-hours-type-details.response';
import { GetTimeCardSummaryResponse } from './models/get-time-card-summary.response';
import { GetShiftDetailResponse } from './models/get-shift-detail.response';
import { GetSwipesResponse } from './models/get-swipes-response';
@Injectable({
providedIn: "root"
providedIn: 'root'
})
export class TimeCardService {
public static getShiftTypeUrl = "Services/ERP.svc/REST/GET_SHIFT_TYPES";
public static getShiftTypeUrl = 'Services/ERP.svc/REST/GET_SHIFT_TYPES';
public static getTimeCardSummaryUrl =
"Services/ERP.svc/REST/GET_TIME_CARD_SUMMARY";
'Services/ERP.svc/REST/GET_TIME_CARD_SUMMARY';
public static getDayHourDetailsUrl =
"Services/ERP.svc/REST/GET_DAY_HOURS_TYPE_DETAILS";
'Services/ERP.svc/REST/GET_DAY_HOURS_TYPE_DETAILS';
public static getShiftDetailUrl =
"Services/ERP.svc/REST/GET_SCHEDULE_SHIFTS_DETAILS";
public static getSwipeUrl = "Services/ERP.svc/REST/GET_SWIPES";
'Services/ERP.svc/REST/GET_SCHEDULE_SHIFTS_DETAILS';
public static getSwipeUrl = 'Services/ERP.svc/REST/GET_SWIPES';
constructor(
public con: ConnectorService,

@ -1,3 +1,412 @@
<p>
time-card-details works!
</p>
<ion-header>
<ion-toolbar class="header-toolbar-new">
<ion-title color="light" >My Time Card</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="time-card-details-container">
<ion-segment
(ionChange)="segmentChanged($event)"
[value]="activeSegment"
style="font-family: WorkSans-Bold;margin-top: 10px;">
<ion-segment-button
value="time-card-details"
[ngClass]="activeSegment == 'time-card-details' ? 'active-Segment' : 'normal-Segment'" >
<ion-label>Time Card Details</ion-label>
</ion-segment-button>
<ion-segment-button
value="time-card-summary"
[ngClass]="activeSegment == 'time-card-summary' ? 'active-Segment' : 'normal-Segment'">
<ion-label>Time Card Summary</ion-label>
</ion-segment-button>
</ion-segment>
<div class="ion-padding" *ngIf="activeSegment === 'time-card-summary'">
<ion-card>
<ion-card-content>
<h2 class="card-summary-heading">Days</h2>
<ion-grid style="line-height: 10px;">
<ion-row>
<ion-col size="8">
Period Days
</ion-col>
<ion-col size="4">
245
</ion-col>
</ion-row>
<ion-row>
<ion-col size="8">
Schedule Days
</ion-col>
<ion-col size="4">
156
</ion-col>
</ion-row>
<ion-row>
<ion-col size="8">
Off days
</ion-col>
<ion-col size="4">
79
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="8">
Attended Days
</ion-col>
<ion-col size="4">
163
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="8">
Absent Days
</ion-col>
<ion-col size="4">
0
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="8">
Non Schedule Days
</ion-col>
<ion-col size="4">
0
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="8">
Not Analyzed Days
</ion-col>
<ion-col size="4">
3
</ion-col>
</ion-row>
</ion-grid>
</ion-card-content>
</ion-card>
<ion-card>
<ion-card-content>
<ion-grid style="line-height: 10px;">
<ion-row class="">
<ion-col size="6" class="card-summary-heading-hours">
Hours
</ion-col>
<ion-col size="3" class="card-summary-heading-hours-extended-heading">
Actual
</ion-col>
<ion-col size="3" class="card-summary-heading-hours-extended-heading">
Schedule
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
Regular
</ion-col>
<ion-col size="3">
245
</ion-col>
<ion-col size="3">
235
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
Planned OT
</ion-col>
<ion-col size="3">
156
</ion-col>
<ion-col size="3">
156
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
On Call
</ion-col>
<ion-col size="3">
79
</ion-col>
<ion-col size="3">
79
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
Excess
</ion-col>
<ion-col size="3">
10
</ion-col>
<ion-col size="3">
10
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
Time Back
</ion-col>
<ion-col size="3">
163
</ion-col>
<ion-col size="3">
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
Approved Time Back
</ion-col>
<ion-col size="3">
0
</ion-col>
<ion-col size="3">
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
Time Back Balance
</ion-col>
<ion-col size="3">
0
</ion-col>
<ion-col size="3">
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
Late In
</ion-col>
<ion-col size="3">
00:06
</ion-col>
<ion-col size="3">
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="6">
Early Out
</ion-col>
<ion-col size="3">
00:03
</ion-col>
<ion-col size="3">
</ion-col>
</ion-row>
</ion-grid>
</ion-card-content>
</ion-card>
<ion-card>
<ion-card-content>
<h2 class="card-summary-heading">Leaves & Holidays</h2>
<ion-grid style="line-height: 10px;">
<ion-row class="">
<ion-col size="7">
Half-Day Leave
</ion-col>
<ion-col size="5">
245
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="7">
Unauthorized Leave
</ion-col>
<ion-col size="5">
156
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="7">
Business Trip
</ion-col>
<ion-col size="5">
79
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="7">
Sick Leave
</ion-col>
<ion-col size="5">
163
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="7">
Paid Leave
</ion-col>
<ion-col size="5">
0
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="7">
Unpaid Leave
</ion-col>
<ion-col size="5">
0
</ion-col>
</ion-row>
<ion-row class="">
<ion-col size="7">
Puclic Holiday
</ion-col>
<ion-col size="5">
3
</ion-col>
</ion-row>
</ion-grid>
</ion-card-content>
</ion-card>
</div>
<div *ngIf="activeSegment === 'time-card-details'" class="time-card-details">
<ion-grid>
<ion-row style="text-align: center;">
<ion-col size="12" class="time-card-details-heading-two">
<h2>Today's time card details</h2>
</ion-col>
</ion-row>
<ion-row>
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/SwipeIn.png"></span>
</ion-col>
<ion-col size="6">
<span>Swipe In:</span>
</ion-col>
<ion-col size="4">
06:57
</ion-col>
</ion-row>
<ion-row>
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/SwipeOut.png"></span>
</ion-col>
<ion-col size="6">
<span>Swipe Out:</span>
</ion-col>
<ion-col size="4">
05:05
</ion-col>
</ion-row>
<ion-row>
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/TotalHours.png"></span>
</ion-col>
<ion-col size="6">
<span>Total Hours:</span>
</ion-col>
<ion-col size="4">
03:39
</ion-col>
</ion-row>
<ion-row>
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/TimeBackIcon.png"></span>
</ion-col>
<ion-col size="6">
<span>Time Back:</span>
</ion-col>
<ion-col size="4">
03:39
</ion-col>
</ion-row>
<ion-row>
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/Remarks.png"></span>
</ion-col>
<ion-col size="6">
<span>Remarks:</span>
</ion-col>
<ion-col size="4">
Off Shift
</ion-col>
</ion-row>
<ion-row [hidden]="showMore == false">
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/Shift Hours.png"></span>
</ion-col>
<ion-col size="6">
<span>Shift Hours:</span>
</ion-col>
<ion-col size="4">
09:00
</ion-col>
</ion-row>
<ion-row [hidden]="showMore == false">
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/ExcessTime.png"></span>
</ion-col>
<ion-col size="6">
<span>Excess Time:</span>
</ion-col>
<ion-col size="4">
00:08
</ion-col>
</ion-row>
<ion-row [hidden]="showMore == false">
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/PlannedOT.png"></span>
</ion-col>
<ion-col size="6">
<span>Planned OT:</span>
</ion-col>
<ion-col size="4">
03:00
</ion-col>
</ion-row>
<ion-row [hidden]="showMore == false">
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/LateIn.png"></span>
</ion-col>
<ion-col size="6">
<span>Late In:</span>
</ion-col>
<ion-col size="4">
00:00
</ion-col>
</ion-row>
<ion-row [hidden]="showMore == false">
<ion-col size="2">
<span class="time-card-span"><img class="" src="../assets/imgs/time-card/EarlyOut.png"></span>
</ion-col>
<ion-col size="6">
<span>Early Out:</span>
</ion-col>
<ion-col size="4">
00:00
</ion-col>
</ion-row>
</ion-grid>
<div class="show-more-less" (click)="toggleButton()">
<span>More Details</span>
<ion-icon slot="icon-only" name="ios-arrow-down"></ion-icon>
</div>
</div>
</div>
</ion-content>
<div class="footer-modal-button">
<button ion-button (click)="openSelectPeriodModal()">
Select Period
</button>
</div>

@ -0,0 +1,128 @@
ion-header{
overflow: hidden;
}
ion-content{
--ion-background-color: #f2f2f3;
}
ion-card-content {
padding: 0px;
}
ion-card {
box-shadow: none !important;
background-color: white;
margin: 10px -15px;
margin-bottom: 20px;
}
ion-header {
background: #f2f2f3;
}
ion-title{
text-align: center;
font-family: WorkSans-Bold;
font-size: 18px;
}
// ion-label {
// color: #A3D077 !important;
// }
.header-toolbar-new{
--background: linear-gradient(90deg, rgba(132,198,143,1) 0%, rgba(41,183,197,1) 100%);
border-bottom-right-radius: 30px;
border-bottom-left-radius: 30px;
}
.active-Segment {
border-radius: 5px !important;
font-size: 0.3cm !important;
background: white !important;
color: #fff !important;
font-weight: bold !important;
border: 1px solid white !important;
text-transform: none;
--color-checked: none;
}
.active-Segment ion-label{
// color: #A3D077 !important;
color: #11975F !important;
font-size: 11px;
}
.normal-Segment ion-label{
// color: #A3D077 !important;
color: white !important;
font-size: 11px;
}
.normal-Segment {
border-radius: 5px !important;
font-size: 0.3cm !important;
background: #A3D077 !important;
color: #fff !important;
font-weight: bold !important;
border: 1px solid white !important;
text-transform: none;
--color-checked: none;
}
.time-card-details-container{
margin-right: 20px;
margin-left: 20px;
}
.card-summary-heading{
margin-left: 10px;
margin-top: 12px;
color: #606161;
font-family: WorkSans-Bold;
}
.card-summary-heading-hours{
color: #606161;
font-family: WorkSans-Bold;
}
.card-summary-heading-hours-extended-heading{
color: #D3D3D3;
font-family: WorkSans-Bold;
}
/////////////////////////////////
.time-card-details {
background: white;
margin-top: 15px;
border-radius: 5px;
}
.time-card-details-heading-two {
color: #606161;
font-family: WorkSans-Bold;
}
.time-card-details-heading-two h2 {
margin-top: 15px;
font-size: 15px;
}
.time-card-span img{
height: 30px;
margin-top: -5px;
margin-left: 10px;
}
.show-more-less{
width: 100%;
background: #606061;
text-align: center;
/* margin: 10px; */
padding-top: 20px;
}
/////////////////////////////////////
.footer-modal-button{
position: absolute;
bottom: 0;
color: white;
width: 100%;
text-align: center;
}
.footer-modal-button button{
font-size: 20px;
background: white;
line-height: 2;
}

@ -1,4 +1,9 @@
import { Component, OnInit } from '@angular/core';
import { TimeCardService } from 'src/app/time-card/service/time-card.service';
import { GetShiftTypeResponse } from '../service/models/get-shift-type.response';
import { CommonService } from 'src/app/hmg-common/services/common/common.service';
import { ModalController } from '@ionic/angular';
import { SelectPeriodComponent } from '../select-period/select-period.component';
@Component({
selector: 'app-time-card-details',
@ -7,8 +12,40 @@ import { Component, OnInit } from '@angular/core';
})
export class TimeCardDetailsComponent implements OnInit {
constructor() { }
public activeSegment: any = 'time-card-summary';
public showMore: any = false;
ngOnInit() {}
constructor(
public timeCardService: TimeCardService,
public cs: CommonService,
public modalController: ModalController
) { }
ngOnInit() {
// this.getShiftType();
}
public segmentChanged(event: any) {
this.activeSegment = event.detail.value;
}
public getShiftType() {
this.timeCardService.getShiftType().subscribe((result: GetShiftTypeResponse) => {
if (this.cs.validResponse(result)) {
console.log('umar' + result);
}
});
}
public toggleButton() {
this.showMore = !this.showMore;
}
async openSelectPeriodModal() {
const modal = await this.modalController.create({
component: SelectPeriodComponent,
cssClass: 'select-period-custom-modal'
});
return await modal.present();
}
}

@ -8,6 +8,7 @@ import { IonicModule } from '@ionic/angular';
import { TimeCardPage } from './time-card.page';
import { TimeCardDetailsComponent } from './time-card-details/time-card-details.component';
import { HomeComponent } from './home/home.component';
import { SelectPeriodComponent } from './select-period/select-period.component';
const routes: Routes = [
{
@ -36,7 +37,11 @@ const routes: Routes = [
declarations: [
TimeCardPage,
HomeComponent,
TimeCardDetailsComponent
]
TimeCardDetailsComponent,
SelectPeriodComponent
],
entryComponents: [
SelectPeriodComponent
],
})
export class TimeCardPageModule {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

@ -851,4 +851,25 @@ color: var(--dark);
// /* bottom: 10px; */
// left: 0;
// width: 100%;
// }
// }
.select-period-custom-modal{
margin-top: 120%;
margin-right: 5%;
margin-left: 5%;
border-radius: 10px;
}
// .select-period-custom-modal{
// --height: auto;
// .modal-wrapper{
// width: 90vw;
// .ion-page {
// position: relative;
// contain: content;
// max-height: 90vh;
// .ion-content {
// overflow: auto;
// }
// }
// }
// }
Loading…
Cancel
Save