From c955a19ae86635fd5a2727bff1d83355795bd265 Mon Sep 17 00:00:00 2001 From: umasoodch Date: Thu, 23 Jan 2020 14:33:25 +0300 Subject: [PATCH] pushed timer code --- Mohem/package-lock.json | 21 ++ Mohem/package.json | 9 +- Mohem/src/app/app.component.html | 2 +- Mohem/src/app/app.module.ts | 10 +- .../feedback/feedback.directive.spec.ts | 8 + .../directive/feedback/feedback.directive.ts | 24 ++ .../feedback/feedback.service.spec.ts | 12 + .../directive/feedback/feedback.service.ts | 20 ++ Mohem/src/app/hmg-common/hmg-common.module.ts | 29 +- .../ui/nav-buttons/nav-buttons.component.scss | 5 + .../services-button.component.html | 8 + .../services-button.component.scss | 34 ++ .../services-button.component.spec.ts | 27 ++ .../services-button.component.ts | 28 ++ .../stats-button/stats-button.component.html | 9 + .../stats-button/stats-button.component.scss | 42 +++ .../stats-button.component.spec.ts | 27 ++ .../ui/stats-button/stats-button.component.ts | 29 ++ Mohem/src/app/home/home.module.ts | 6 +- Mohem/src/app/home/home.page.html | 251 +++++++++------ Mohem/src/app/home/home.page.scss | 224 +++++-------- Mohem/src/app/home/home.page.ts | 304 ++++++++++++------ .../icon/new-design/advance_payments.png | Bin 0 -> 1116 bytes .../new-design/attendance_button_icon.png | Bin 0 -> 2460 bytes .../icon/new-design/borrowing_passport.png | Bin 0 -> 1549 bytes .../icon/new-design/employee_certificate.png | Bin 0 -> 1401 bytes .../icon/new-design/id_badge_request.png | Bin 0 -> 1231 bytes Mohem/src/assets/icon/new-design/it_forms.png | Bin 0 -> 853 bytes .../assets/icon/new-design/leave_balance.png | Bin 0 -> 1324 bytes .../icon/new-design/leave_management.png | Bin 0 -> 1050 bytes .../icon/new-design/medical_insurance.png | Bin 0 -> 815 bytes .../assets/icon/new-design/missing_swipe.png | Bin 0 -> 975 bytes Mohem/src/assets/icon/new-design/pay_slip.png | Bin 0 -> 1200 bytes .../icon/new-design/pending_request.png | Bin 0 -> 864 bytes .../new-design/recreational_activities.png | Bin 0 -> 1420 bytes .../new-design/separation_resignation.png | Bin 0 -> 1306 bytes .../assets/icon/new-design/ticket_balance.png | Bin 0 -> 999 bytes .../assets/icon/new-design/ticket_request.png | Bin 0 -> 1060 bytes .../icon/new-design/uniform_request.png | Bin 0 -> 1069 bytes .../assets/icon/new-design/vacation_rules.png | Bin 0 -> 984 bytes .../src/assets/icon/new-design/work_list.png | Bin 0 -> 759 bytes Mohem/src/theme/styles.scss | 14 + Mohem/tsconfig.json | 5 + 43 files changed, 778 insertions(+), 370 deletions(-) create mode 100644 Mohem/src/app/hmg-common/directive/feedback/feedback.directive.spec.ts create mode 100644 Mohem/src/app/hmg-common/directive/feedback/feedback.directive.ts create mode 100644 Mohem/src/app/hmg-common/directive/feedback/feedback.service.spec.ts create mode 100644 Mohem/src/app/hmg-common/directive/feedback/feedback.service.ts create mode 100644 Mohem/src/app/hmg-common/ui/services-button/services-button.component.html create mode 100644 Mohem/src/app/hmg-common/ui/services-button/services-button.component.scss create mode 100644 Mohem/src/app/hmg-common/ui/services-button/services-button.component.spec.ts create mode 100644 Mohem/src/app/hmg-common/ui/services-button/services-button.component.ts create mode 100644 Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.html create mode 100644 Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.scss create mode 100644 Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.spec.ts create mode 100644 Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.ts create mode 100644 Mohem/src/assets/icon/new-design/advance_payments.png create mode 100644 Mohem/src/assets/icon/new-design/attendance_button_icon.png create mode 100644 Mohem/src/assets/icon/new-design/borrowing_passport.png create mode 100644 Mohem/src/assets/icon/new-design/employee_certificate.png create mode 100644 Mohem/src/assets/icon/new-design/id_badge_request.png create mode 100644 Mohem/src/assets/icon/new-design/it_forms.png create mode 100644 Mohem/src/assets/icon/new-design/leave_balance.png create mode 100644 Mohem/src/assets/icon/new-design/leave_management.png create mode 100644 Mohem/src/assets/icon/new-design/medical_insurance.png create mode 100644 Mohem/src/assets/icon/new-design/missing_swipe.png create mode 100644 Mohem/src/assets/icon/new-design/pay_slip.png create mode 100644 Mohem/src/assets/icon/new-design/pending_request.png create mode 100644 Mohem/src/assets/icon/new-design/recreational_activities.png create mode 100644 Mohem/src/assets/icon/new-design/separation_resignation.png create mode 100644 Mohem/src/assets/icon/new-design/ticket_balance.png create mode 100644 Mohem/src/assets/icon/new-design/ticket_request.png create mode 100644 Mohem/src/assets/icon/new-design/uniform_request.png create mode 100644 Mohem/src/assets/icon/new-design/vacation_rules.png create mode 100644 Mohem/src/assets/icon/new-design/work_list.png diff --git a/Mohem/package-lock.json b/Mohem/package-lock.json index fc11c970..64101252 100644 --- a/Mohem/package-lock.json +++ b/Mohem/package-lock.json @@ -1209,6 +1209,14 @@ "@types/cordova": "^0.0.34" } }, + "@ionic-native/vibration": { + "version": "5.19.1", + "resolved": "https://registry.npmjs.org/@ionic-native/vibration/-/vibration-5.19.1.tgz", + "integrity": "sha512-f9fMtBRJmVLklRrnqcSqKktw6skdp+dDQpbBOq1m5VSQF7b6EKkCIUTN69EjeSn2z3AD0kSYn1hCGTp2q+cJIw==", + "requires": { + "@types/cordova": "^0.0.34" + } + }, "@ionic-native/zbar": { "version": "5.19.1", "resolved": "https://registry.npmjs.org/@ionic-native/zbar/-/zbar-5.19.1.tgz", @@ -4550,6 +4558,11 @@ "resolved": "https://registry.npmjs.org/cordova-plugin-themeablebrowser/-/cordova-plugin-themeablebrowser-0.2.18.tgz", "integrity": "sha512-FdE1L3wItbTtUudysX/QxN6DTnfGPTMiS4Np/XKeSfYM0bU8sP6DhUIUp1vA8GAulihkEfbNIvy68oVkx2xtFQ==" }, + "cordova-plugin-vibration": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/cordova-plugin-vibration/-/cordova-plugin-vibration-3.1.1.tgz", + "integrity": "sha512-qgv67Rueo4Pydfant3TwnXeFiN9dl+6lKMM6h5jYg9XewiGAGOr8vfWsTvQssC3m3xMKGS1ap3xPNH+BzZ4RMA==" + }, "cordova-plugin-whitelist": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.4.tgz", @@ -9392,6 +9405,14 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "ng-circle-progress": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ng-circle-progress/-/ng-circle-progress-1.5.1.tgz", + "integrity": "sha512-gJ0SdWc+TkXckfbhbvUY522yjya3qcc1a3lGvvVyLsUfSOgll8LQaZGDEko84d8dk8vYO83n0O5vP+e8bJTInQ==", + "requires": { + "tslib": "^1.9.0" + } + }, "ng2-file-upload": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ng2-file-upload/-/ng2-file-upload-1.4.0.tgz", diff --git a/Mohem/package.json b/Mohem/package.json index b4fc242d..409df5c5 100755 --- a/Mohem/package.json +++ b/Mohem/package.json @@ -52,6 +52,7 @@ "@ionic-native/sqlite": "^5.18.0", "@ionic-native/status-bar": "^5.0.0", "@ionic-native/themeable-browser": "^5.18.0", + "@ionic-native/vibration": "^5.19.1", "@ionic-native/zbar": "^5.10.0", "@ionic/angular": "^4.1.0", "@ng-bootstrap/ng-bootstrap": "^4.2.2", @@ -95,6 +96,7 @@ "cordova-plugin-splashscreen": "^5.0.3", "cordova-plugin-statusbar": "^2.4.3", "cordova-plugin-themeablebrowser": "^0.2.18", + "cordova-plugin-vibration": "^3.1.1", "cordova-plugin-whitelist": "^1.3.4", "cordova-sqlite-storage": "^3.4.0", "cordova-support-google-services": "^1.3.2", @@ -102,6 +104,7 @@ "core-js": "^2.5.4", "date-fns": "^1.30.1", "mx.ferreyra.callnumber": "0.0.2", + "ng-circle-progress": "^1.5.1", "ng2-file-upload": "^1.3.0", "ng2-pdf-viewer": "^5.3.2", "npm": "^6.13.1", @@ -111,6 +114,7 @@ "primeng": "^7.1.3", "run": "1.4.0", "rxjs": "~6.3.3", + "tslib": "^1.10.0", "uk.co.workingedge.phonegap.plugin.launchnavigator": "^3.2.2", "xlsx": "^0.14.3", "zone.js": "~0.8.29" @@ -190,7 +194,8 @@ "cordova-plugin-fingerprint-aio": { "FACEID_USAGE_DESCRIPTION": "User Authentication" }, - "cordova-plugin-firebasex": {} + "cordova-plugin-firebasex": {}, + "cordova-plugin-vibration": {} }, "platforms": [ "browser", @@ -198,4 +203,4 @@ "android" ] } -} \ No newline at end of file +} diff --git a/Mohem/src/app/app.component.html b/Mohem/src/app/app.component.html index 1556b050..936d023a 100644 --- a/Mohem/src/app/app.component.html +++ b/Mohem/src/app/app.component.html @@ -14,7 +14,7 @@ - + diff --git a/Mohem/src/app/app.module.ts b/Mohem/src/app/app.module.ts index 40ac3f80..f6013cf6 100644 --- a/Mohem/src/app/app.module.ts +++ b/Mohem/src/app/app.module.ts @@ -5,18 +5,16 @@ import { HmgCommonModule } from './hmg-common/hmg-common.module'; import { IonicModule, IonicRouteStrategy } from '@ionic/angular'; import { SplashScreen } from '@ionic-native/splash-screen/ngx'; import { StatusBar } from '@ionic-native/status-bar/ngx'; - import { AppComponent } from './app.component'; import { AppRoutingModule } from './app-routing.module'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { ZBar } from '@ionic-native/zbar/ngx'; import { Geolocation } from '@ionic-native/geolocation/ngx'; -import {Camera,CameraOptions,PictureSourceType} from'@ionic-native/Camera/ngx'; -import { FilePath } from "@ionic-native/file-path/ngx"; -import { File } from "@ionic-native/file/ngx"; -import { Base64 } from "@ionic-native/base64/ngx"; +import {Camera, CameraOptions, PictureSourceType} from '@ionic-native/Camera/ngx'; +import { FilePath } from '@ionic-native/file-path/ngx'; +import { File } from '@ionic-native/file/ngx'; +import { Base64 } from '@ionic-native/base64/ngx'; import { FirebaseX } from '@ionic-native/firebase-x/ngx'; - @NgModule({ declarations: [AppComponent], entryComponents: [], diff --git a/Mohem/src/app/hmg-common/directive/feedback/feedback.directive.spec.ts b/Mohem/src/app/hmg-common/directive/feedback/feedback.directive.spec.ts new file mode 100644 index 00000000..7acbd168 --- /dev/null +++ b/Mohem/src/app/hmg-common/directive/feedback/feedback.directive.spec.ts @@ -0,0 +1,8 @@ +import { FeedbackDirective } from './feedback.directive'; + +describe('FeedbackDirective', () => { + it('should create an instance', () => { + const directive = new FeedbackDirective(); + expect(directive).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/hmg-common/directive/feedback/feedback.directive.ts b/Mohem/src/app/hmg-common/directive/feedback/feedback.directive.ts new file mode 100644 index 00000000..14637341 --- /dev/null +++ b/Mohem/src/app/hmg-common/directive/feedback/feedback.directive.ts @@ -0,0 +1,24 @@ +import { Directive, ElementRef, HostListener } from '@angular/core'; +import { TranslatorService } from '../../services/translator/translator.service'; +import { CommonService } from '../../services/common/common.service'; +import { FeedbackService } from './feedback.service'; + +@Directive({ + selector: '[feedback]' +}) +export class FeedbackDirective { + + constructor( + private cs: CommonService, + private ts: TranslatorService, + private el: ElementRef, + private feedBackService: FeedbackService + ) { + + } + + + @HostListener('mousedown') onMouseEnter() { + this.feedBackService.vibrate(); + } +} diff --git a/Mohem/src/app/hmg-common/directive/feedback/feedback.service.spec.ts b/Mohem/src/app/hmg-common/directive/feedback/feedback.service.spec.ts new file mode 100644 index 00000000..dabb73db --- /dev/null +++ b/Mohem/src/app/hmg-common/directive/feedback/feedback.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { FeedbackService } from './feedback.service'; + +describe('FeedbackService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: FeedbackService = TestBed.get(FeedbackService); + expect(service).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/hmg-common/directive/feedback/feedback.service.ts b/Mohem/src/app/hmg-common/directive/feedback/feedback.service.ts new file mode 100644 index 00000000..a2b446da --- /dev/null +++ b/Mohem/src/app/hmg-common/directive/feedback/feedback.service.ts @@ -0,0 +1,20 @@ +import { Injectable } from '@angular/core'; +import { Vibration } from '@ionic-native/vibration/ngx'; +// import { SettingsService } from 'src/app/settings/service/settings.service'; + +@Injectable({ +providedIn: 'root' +}) +export class FeedbackService { +// constructor(private vibration: Vibration, private settings: SettingsService) {} +constructor(private vibration: Vibration) {} + +public async vibrate() { +try { +const on = true; +if (on) { +this.vibration.vibrate(500); +}} catch (e) { +} +} +} diff --git a/Mohem/src/app/hmg-common/hmg-common.module.ts b/Mohem/src/app/hmg-common/hmg-common.module.ts index 520715e4..3be427e4 100644 --- a/Mohem/src/app/hmg-common/hmg-common.module.ts +++ b/Mohem/src/app/hmg-common/hmg-common.module.ts @@ -42,19 +42,14 @@ import { NativeStorage } from '@ionic-native/native-storage/ngx'; import { ProgressLoadingService } from './ui/progressLoading/progress-loading.service'; import { BarChartComponent } from './ui/bar-chart/bar-chart.component'; import { DonutChartComponent } from './ui/donut-chart/donut-chart.component'; -//import { UserLocalNotificationService } from './services/user-local-notification/user-local-notification.service'; -//import { LocalNotifications } from '@ionic-native/local-notifications/ngx'; import { EmailComponent } from './ui/email/email.component'; import { Badge } from '@ionic-native/badge/ngx'; -// import { Push } from '@ionic-native/push/ngx'; import { PushService } from './services/push/push.service'; import { LifeCycleService } from './services/life-cycle/life-cycle.service'; import { HmgBrowserService } from './services/hmg-browser/hmg-browser.service'; import { GuidService } from './services/guid/guid.service'; import { TabsBarComponent } from './ui/tabs-bar/tabs-bar.component'; import { PageTrailerComponent } from './ui/spacer/page-trailer/page-trailer.component'; -//import { GeofencingService } from './services/geofencing/geofencing.service'; -// import { BackgroundGeolocation } from '@ionic-native/background-geolocation/ngx'; import { ButtonComponent } from './ui/button/button.component'; import { ToolbarButtonComponent } from './ui/toolbar-button/toolbar-button.component'; import { ListboxModule } from 'primeng/listbox'; @@ -82,24 +77,23 @@ import { Diagnostic } from '@ionic-native/diagnostic/ngx'; import { DetailButtonComponent } from './ui/detail-button/detail-button.component'; import { RouterModule } from '@angular/router'; import { HeaderButtonComponent } from './ui/header-button/header-button.component'; -//import { CallNumber } from '@ionic-native/call-number/ngx'; import { AppRate } from '@ionic-native/app-rate/ngx'; import { RatingService } from './services/rating/rating.service'; import { InAppBrowser } from '@ionic-native/in-app-browser/ngx'; import { RateService } from './services/rate/rate.service'; -//import { PaymentComponent } from './ui/payment/payment.component'; -//import { PaymentService } from './ui/payment/service/payment.service'; import { MenuService } from './services/menu/menuservice.service'; import { ReplacementListComponent } from '../vacation-rule/replacement-list/replacement-list.component'; import { FileSelectDirective } from 'ng2-file-upload'; - import { PdfViewerModule } from 'ng2-pdf-viewer'; +import { PdfViewerModule } from 'ng2-pdf-viewer'; import { WorkListAttachViewComponent } from '../notification/work-list-attach-view/work-list-attach-view.component'; -import {Camera,CameraOptions, PictureSourceType} from '@ionic-native/Camera/ngx'; +import {Camera, CameraOptions, PictureSourceType} from '@ionic-native/Camera/ngx'; import {File} from '@ionic-native/file/ngx'; import {FileUploderProfileComponent} from './ui/file-uploder-profile/file-uploder-profile.component' import { OpenNativeSettings } from '@ionic-native/open-native-settings/ngx'; import { AccordinCustomComponent } from './ui/accordin-custom/accordin-custom.component'; import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-custom/accordin-tab-custom.component' +import { StatsButtonComponent } from './ui/stats-button/stats-button.component'; +import { ServicesButtonComponent } from './ui/services-button/services-button.component'; @NgModule({ imports: [ CommonModule, @@ -165,7 +159,9 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus WorkListAttachViewComponent, FileUploderProfileComponent, AccordinTabCustomComponent, - AccordinCustomComponent + AccordinCustomComponent, + StatsButtonComponent, + ServicesButtonComponent ], exports: [ NumberRangeComponent, @@ -212,13 +208,14 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus EmptyDataComponent, DetailButtonComponent, HeaderButtonComponent, - //PaymentComponent, ReplacementListComponent, FileSelectDirective, WorkListAttachViewComponent, FileUploderProfileComponent, AccordinTabCustomComponent, - AccordinCustomComponent + AccordinCustomComponent, + StatsButtonComponent, + ServicesButtonComponent ], providers: [ ConnectorService, @@ -234,14 +231,10 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus NativeStorage, ProgressLoadingService, PushService, - //UserLocalNotificationService, - //LocalNotifications, Badge, LifeCycleService, HmgBrowserService, GuidService, - // BackgroundGeolocation, - //GeofencingService, Keyboard, KeyboardService, Diagnostic, @@ -250,14 +243,12 @@ import { AccordinTabCustomComponent} from './ui/accordin-custom/accordin-tab-cus HMGPreloadingStrategy, HMGPreloadingStrategyLoading, Diagnostic, - // CallNumber, AppRate, RatingService, InAppBrowser, RateService, Camera, File, - //PaymentService, MenuService, OpenNativeSettings ] diff --git a/Mohem/src/app/hmg-common/ui/nav-buttons/nav-buttons.component.scss b/Mohem/src/app/hmg-common/ui/nav-buttons/nav-buttons.component.scss index b2fe3562..ab0299d1 100644 --- a/Mohem/src/app/hmg-common/ui/nav-buttons/nav-buttons.component.scss +++ b/Mohem/src/app/hmg-common/ui/nav-buttons/nav-buttons.component.scss @@ -1,3 +1,8 @@ .float-left{ float: left; +} +ion-menu-button { + font-size: 0.8cm; + color: white; + background: #22c6b3; } \ No newline at end of file diff --git a/Mohem/src/app/hmg-common/ui/services-button/services-button.component.html b/Mohem/src/app/hmg-common/ui/services-button/services-button.component.html new file mode 100644 index 00000000..ef14b4af --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/services-button/services-button.component.html @@ -0,0 +1,8 @@ +
+
+ +
+
+

{{title}}

+
+
\ No newline at end of file diff --git a/Mohem/src/app/hmg-common/ui/services-button/services-button.component.scss b/Mohem/src/app/hmg-common/ui/services-button/services-button.component.scss new file mode 100644 index 00000000..ff7c3d40 --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/services-button/services-button.component.scss @@ -0,0 +1,34 @@ +.custom-button { + background: white; + margin-bottom: 0px; + border: 1px solid #ccc; + border-radius: 20px; + width: 100%; + max-width: 105px; + height: 100px; + padding: 10px; + min-width: 96px; +} + +.iconBox { + display: block; + width: 100%; + position: static; +} +.iconBox img{ + margin: 0px auto 10px; + display: block; + // max-width: 35%; +} + +.titleBox { + display: block; +} + +.pClass { + font-size: 12PX; + text-align: center; + margin-top: 10px; + color: black; + font-weight: bold; +} \ No newline at end of file diff --git a/Mohem/src/app/hmg-common/ui/services-button/services-button.component.spec.ts b/Mohem/src/app/hmg-common/ui/services-button/services-button.component.spec.ts new file mode 100644 index 00000000..67215f5b --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/services-button/services-button.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ServicesButtonComponent } from './services-button.component'; + +describe('ServicesButtonComponent', () => { + let component: ServicesButtonComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ServicesButtonComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ServicesButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/hmg-common/ui/services-button/services-button.component.ts b/Mohem/src/app/hmg-common/ui/services-button/services-button.component.ts new file mode 100644 index 00000000..bdc3b3b1 --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/services-button/services-button.component.ts @@ -0,0 +1,28 @@ +import { Component, OnInit, Input, Output, EventEmitter} from '@angular/core'; +import { TranslatorService } from '../../services/translator/translator.service'; + +@Component({ + selector: 'app-services-button', + templateUrl: './services-button.component.html', + styleUrls: ['./services-button.component.scss'], +}) +export class ServicesButtonComponent implements OnInit { + + @Input() class: any = ''; + @Input() buttonClass: any = ''; + @Input() icon: string; + @Input() title: string; + @Output() trigger = new EventEmitter(); + @Input() focusicon: string; + @Input() disabled = false; + public direction: string; + public style: any; + constructor( + public ts: TranslatorService + ) {} + + ngOnInit() {} + + public onClicked() {} +} + diff --git a/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.html b/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.html new file mode 100644 index 00000000..554414ee --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.html @@ -0,0 +1,9 @@ +
+
+ +
+
+ {{statsValue}} +

{{title}}

+
+
\ No newline at end of file diff --git a/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.scss b/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.scss new file mode 100644 index 00000000..5c7cc59c --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.scss @@ -0,0 +1,42 @@ +.custom-button { + background: white; + margin-bottom: 0px; + border: 1px solid #ccc; + border-radius: 20px; + width: 100%; + max-width: 105px; + height: 160px; + padding: 10px; +} + +.iconBox { + display: block; + width: 100%; + position: static; + img { + display: block; + max-width: 45%; + padding-bottom: 5px; + padding-top: 5px; + } +} + +.titleBox { + display: block; + span { + font-size: 40px; + font-weight: bold; + color: black; + text-align: left; + display: block; + } +} + +.pClass { + color: black; + width: 85%; + margin-top: 5px; + font-weight: bold; + text-align: left; + display: block; +} diff --git a/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.spec.ts b/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.spec.ts new file mode 100644 index 00000000..8446e7cd --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.spec.ts @@ -0,0 +1,27 @@ +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { StatsButtonComponent } from './stats-button.component'; + +describe('StatsButtonComponent', () => { + let component: StatsButtonComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ StatsButtonComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(StatsButtonComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.ts b/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.ts new file mode 100644 index 00000000..b204d12d --- /dev/null +++ b/Mohem/src/app/hmg-common/ui/stats-button/stats-button.component.ts @@ -0,0 +1,29 @@ +import { Component, OnInit, Input, Output, EventEmitter} from '@angular/core'; +import { TranslatorService } from '../../services/translator/translator.service'; + +@Component({ + selector: 'app-stats-button', + templateUrl: './stats-button.component.html', + styleUrls: ['./stats-button.component.scss'], +}) +export class StatsButtonComponent implements OnInit { + + @Input() class: any = ''; + @Input() buttonClass: any = ''; + @Input() icon: string; + @Input() title: string; + @Input() statsValue: string; + @Output() trigger = new EventEmitter(); + @Input() focusicon: string; + @Input() disabled = false; + public direction: string; + public style: any; + constructor( + public ts: TranslatorService + ) {} + + ngOnInit() {} + + public onClicked() {} + +} diff --git a/Mohem/src/app/home/home.module.ts b/Mohem/src/app/home/home.module.ts index 58e6cd52..781a20ec 100644 --- a/Mohem/src/app/home/home.module.ts +++ b/Mohem/src/app/home/home.module.ts @@ -6,7 +6,7 @@ import { HmgCommonModule } from '../hmg-common/hmg-common.module'; import { IonicModule } from '@ionic/angular'; import { HomePage } from './home.page'; import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx'; - +import { NgCircleProgressModule } from 'ng-circle-progress'; const routes: Routes = [ { path: '', @@ -20,7 +20,9 @@ const routes: Routes = [ FormsModule, IonicModule, HmgCommonModule, - RouterModule.forChild(routes) + RouterModule.forChild(routes), + // Specify ng-circle-progress as an import + NgCircleProgressModule.forRoot() ], declarations: [ HomePage diff --git a/Mohem/src/app/home/home.page.html b/Mohem/src/app/home/home.page.html index fe151468..4d425c4d 100644 --- a/Mohem/src/app/home/home.page.html +++ b/Mohem/src/app/home/home.page.html @@ -1,117 +1,164 @@ - - --> - -
- - -
-

{{ts.trPK('home','hello')}}, {{userData.EMPLOYEE_DISPLAY_NAME}}

-
- - + -
- - -
-
- - - - + + + + + + + + + + + -
-
+ + +

Monthly Attendance

+ View your Monthly Time Sheet + + View Detail + +
+ + + +
+ + {{menuItem.PROMPT}} + + + + + + + + + -
-
-

{{ts.trPK('home','dashboard')}}

-
-
- - - - - - - - - - - - - - - - - + + + - - - + --> - + + + + + + + +{{displayTime}} + + diff --git a/Mohem/src/app/home/home.page.scss b/Mohem/src/app/home/home.page.scss index 280c4b4a..81add380 100644 --- a/Mohem/src/app/home/home.page.scss +++ b/Mohem/src/app/home/home.page.scss @@ -1,153 +1,85 @@ -.button-menutoggle.button-menutoggle-md,button-menutoggle.button-menutoggle-ios, -.bar-buttons.bar-buttons-ios.button.button-ios.button-default.button-default-ios.button-menutoggle.button-menutoggle-ios{ - box-shadow: none; - -webkit-box-shadow:none; - -moz-box-shadow: none; - background: transparent !important; - } - .colorBG{ - --background: #f0efef; - } +ion-row { + margin-bottom: 15px; + margin-top: 10px; +} - .menubutton{ - white-space: normal; - color: var(--light); - text-transform: capitalize; - min-height: 47px; - background: transparent; - font-size: 2rem; +.header-toolbar-new{ + --background: #22c6b3; +} +ion-title{ + color: white; position: absolute; - top: 40px; - } - .menubuttonTrans{ - white-space: normal; - color: var(--light); - text-transform: capitalize; - min-height: 47px; - background: transparent; - font-size: 2rem; - position: absolute; - top: 40px; - left: 315px - } - #homeBadgeBtn{ - position: absolute; - top: 2px; - width: 20px; - font-size: 10px; - height: 20px; - padding: 0px; - line-height: 2; - min-width: auto; - min-height: auto; - border-radius: 50%; - } - .homeBox{ - - - } - .header-div{ - background:var(--primary); - background: -moz-linear-gradient(45deg, var(--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%); - background: -webkit-linear-gradient(45deg, (--primary) 0%, var(--secondary) 36%,var(--secondary) 59%, var(--customnavy) 100%); - background: linear-gradient(90deg, #85C48D 0%, #85C48D 13%, #2BB5C6 98%, #2BB5C6 100%); - color:var(--light); - text-transform: capitalize; - - display: block; - position: relative; - height: 210px; - margin-bottom:60px; - border-radius: 0px 0px 70px 70px; - } - - .dash-header{ + top: 0; text-align: center; - margin: 16px 0 0 0; - - } - - .TxtPlace { - margin: 0; - padding: 50px 0 10px 0; - text-align: center; - width:100%; - } - - .serviceItem { - // min-height: 160px !important; - // padding: 0; - // width: 95%; - // border: 0px solid #e4e5e7; - // background: white; - // color: var(--dark); - // border-radius: 7px; - min-height: 200px !important; - padding-top: 0; - width: 95%; - margin-left: 4px; - margin-bottom: 13px; - border: 0px solid #e4e5e7; - background: white; - color: var(--dark); - border-radius: 7px; - p{ - margin-top: 0px; margin-bottom:0px; - font-weight: normal; + left: 15%; + right: 15%; + font-size: 0.42cm; + font-weight: bold; + height: 100%; +} +ion-label{ + display: block; + color: black !important; font-size: 14px; - min-height: 20px; - // white-space: normal; - text-align: center; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical; - overflow: hidden; + font-weight: bold; +} +.main-dashboard-container{ + position: relative; + width: 100%; +} +.header-md:after { + height: 0px !important; + display: none !important; +} +.contentBg:before { + position: absolute; + content: ""; + background: #22c6b3; + height: 100px; + width: 100%; + left: 0; + top: 0px; + z-index: 1; +} +.main-container{ + position: relative; + z-index: 2; + padding-right: 15px; + padding-left: 15px; +} +.attendance-module{ + border-radius: 20px; + background-color: #094875; + padding: 10px; + color: white; + width: 100%; + h3{ + font-size: 18px; + font-weight: bold; + margin: 0; } - span { - display: block; - + span{ + font-size: 13px; + display: block; } - .serviceItemImg { - min-width: 60px !important; - min-height: 70px !important; - width: 80px; - height: 80px; - margin: 10px auto; - background: transparent !important; + img{ + display: block; + margin: 10px auto; + width: 80%; } - - } - .serviceItem.button,.serviceItem.button-md, .serviceItem.button-ios{ - background: transparent !important; - color:var(--dark); - box-shadow: none; - -webkit-box-shadow:none; - -moz-box-shadow: none; - border: 2px solid var(--gray); - min-width: auto; - } - //test - .changeImgBtn{ - margin: 0; - position: absolute; - top: 80%; - left: 53%; - -ms-transform: translate(-50%, -50%); - transform: translate(-50%, -50%); - } -//test - .changeIcon{ - background: #c1c1c1; - width: 40px; - height: 39px; - border-radius: 50% !important; - position: relative; - left: 51px; - top:16px; - } - .menuImg{ - max-width: 30px; - } - .transImg{ - max-width: 45px; - } - + ion-button{ + border-radius: 10px; + padding: 10px; + background: #3CB9DF; + --background: transparent; + --box-shadow: none !important; + height: auto; + min-height: inherit; + margin-top: 10px; + font-size: 12px; + } +} +.swiper-container { + margin: 0 !important; + width: 100% !important; +} \ No newline at end of file diff --git a/Mohem/src/app/home/home.page.ts b/Mohem/src/app/home/home.page.ts index 85d2fe20..3ac99758 100644 --- a/Mohem/src/app/home/home.page.ts +++ b/Mohem/src/app/home/home.page.ts @@ -1,39 +1,36 @@ -import { EitService } from "./../eit/services/eit.service"; -import { Component, OnInit } from "@angular/core"; -import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; -import { MenuController, Events, ActionSheetController } from "@ionic/angular"; -import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service"; -import { AuthenticatedUser } from "src/app/hmg-common/services/authentication/models/authenticated-user"; -import { MenuService } from "src/app/hmg-common/services/menu/menuservice.service"; -import { MenuResponse } from "src/app/hmg-common/services/menu/models/menu-response"; -import { CommonService } from "src/app/hmg-common/services/common/common.service"; -import { Geolocation } from "@ionic-native/geolocation/ngx"; -import { ZBar, ZBarOptions } from "@ionic-native/zbar/ngx"; +import { EitService } from './../eit/services/eit.service'; +import { Component, OnInit } from '@angular/core'; +import { TranslatorService } from 'src/app/hmg-common/services/translator/translator.service'; +import { MenuController, Events, ActionSheetController } from '@ionic/angular'; +import { AuthenticationService } from 'src/app/hmg-common/services/authentication/authentication.service'; +import { AuthenticatedUser } from 'src/app/hmg-common/services/authentication/models/authenticated-user'; +import { MenuService } from 'src/app/hmg-common/services/menu/menuservice.service'; +import { MenuResponse } from 'src/app/hmg-common/services/menu/models/menu-response'; +import { CommonService } from 'src/app/hmg-common/services/common/common.service'; +import { Geolocation } from '@ionic-native/geolocation/ngx'; +import { ZBar, ZBarOptions } from '@ionic-native/zbar/ngx'; import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx'; -import { Device } from "@ionic-native/device/ngx"; -import { attendanceSwipeScannerRequest } from "./models/attendanceSwipe.Request"; -import { Response } from "src/app/hmg-common/services/models/response"; -import { AttendanceService } from "./services/attendance.services"; -import { LoginRequest } from "../hmg-common/services/authentication/models/login.request"; +import { Device } from '@ionic-native/device/ngx'; +import { attendanceSwipeScannerRequest } from './models/attendanceSwipe.Request'; +import { Response } from 'src/app/hmg-common/services/models/response'; +import { AttendanceService } from './services/attendance.services'; +import { LoginRequest } from '../hmg-common/services/authentication/models/login.request'; import {FileUploaderComponent} from '../hmg-common/ui/file-uploader/file-uploader.component' -import { Camera, CameraOptions,PictureSourceType} from "@ionic-native/Camera/ngx"; -//import { FileChooser } from "@ionic-native/file-chooser/ngx"; -import { File } from "@ionic-native/file/ngx"; +import { Camera, CameraOptions,PictureSourceType} from '@ionic-native/Camera/ngx'; +import { File } from '@ionic-native/file/ngx'; import { DomSanitizer } from '@angular/platform-browser'; -//import { FilePath } from "@ionic-native/file-path/ngx"; -//import { Base64 } from "@ionic-native/base64/ngx"; import {FileUploderProfileComponent} from '../hmg-common/ui/file-uploder-profile/file-uploder-profile.component' import { SharedDataService } from '../hmg-common/services/shared-data-service/shared-data.service'; import { DevicePermissionsService } from '../hmg-common/services/device-permissions/device-permissions.service'; @Component({ - selector: "app-home", - templateUrl: "./home.page.html", - styleUrls: ["./home.page.scss"] + selector: 'app-home', + templateUrl: './home.page.html', + styleUrls: ['./home.page.scss'] }) export class HomePage implements OnInit { userData: any = {}; - user_image: any = "../assets/imgs/profile.png"; + user_image: any = '../assets/imgs/profile.png'; menuList: any = []; zbarOptions: any; scannedResult: any; @@ -41,11 +38,77 @@ export class HomePage implements OnInit { lat: any; longt: any; deviceID: string; - public maxFileSize =10 * 1024 * 1024; - public fileUploder :FileUploaderComponent; + public maxFileSize = 10 * 1024 * 1024; + public fileUploder: FileUploaderComponent; // public fileUploderProfile:FileUploderProfileComponent location: boolean; - camera: boolean + camera: boolean; + public statsButtons = [ + { + title: 'Work List', + statsValue: '79', + icon: 'assets/icon/new-design/work_list.png' + }, + { + title: 'Pending Request', + statsValue: '13', + icon: 'assets/icon/new-design/pending_request.png' + }, + { + title: 'Missing Swipes', + statsValue: '99', + icon: 'assets/icon/new-design/missing_swipe.png' + }, + { + title: 'Leave Balance', + statsValue: '02', + icon: 'assets/icon/new-design/leave_balance.png' + }, + { + title: 'Ticket Balance', + statsValue: '01', + icon: 'assets/icon/new-design/ticket_balance.png' + } + ]; + + public employeeServicesButtons = [ + { + title: 'Leave Management', + icon: 'assets/icon/new-design/leave_management.png' + }, + { + title: 'Advance Payments', + icon: 'assets/icon/new-design/advance_payments.png' + }, + { + title: 'Medical Insurance', + icon: 'assets/icon/new-design/medical_insurance.png' + }, + { + title: 'Pay Slip', + icon: 'assets/icon/new-design/pay_slip.png' + } + ]; + public slideOptsOne = { + slidesPerView: 3.5, + spaceBetween: 10 +}; +public slideOptsTwo = { + slidesPerView: 3.2, + spaceBetween: 10 +}; + +public timeInSeconds: any = 200; +public time: any; +public runTimer = false; +public hasStarted = false; +public hasFinished = false; +public remainingTime: any; +public displayTime: any; +public menuEntries: any; +public titleFormat: any; +public percent = 10; + constructor( public ts: TranslatorService, public menu: MenuController, @@ -63,44 +126,86 @@ export class HomePage implements OnInit { private cameraController: Camera, public sharedData: SharedDataService, private sanitizer: DomSanitizer, - //private transfer: Transfer, - private file: File, - //private filePath: FilePath + private file: File, private permissions: DevicePermissionsService ) { - this.events.subscribe("img-change", displayImg => { - - // this.user_image = "data:image/jpeg;base64"+displayImg; - // alert("home app: "); - this.user_image = this.sanitizer.bypassSecurityTrustUrl("data:Image/*;base64,"+displayImg); - console.log("html saved img: "+this.user_image); + this.events.subscribe('img-change', displayImg => { + this.user_image = this.sanitizer.bypassSecurityTrustUrl('data:Image/*;base64,'+displayImg); + console.log('html saved img: ' + this.user_image); }); } - ngOnInit() { - this.getUserDetails(); - this.getMenu(); - this.setServicesPrivilage(); + // this.getUserDetails(); + // this.getMenu(); + // this.setServicesPrivilage(); - this.getCount(); + // this.getCount(); - - this.events.subscribe("getNotCount", badge => { - this.notBadge = badge; - }); + this.initTimer(); + // this.events.subscribe('getNotCount', badge => { + // this.notBadge = badge; + // }); } + // formatSubtitle = (time: number) : string => { + // return + // } + + initTimer() { + this.time = this.timeInSeconds; + this.runTimer = false; + this.hasStarted = false; + this.hasFinished = false; + this.remainingTime = this.timeInSeconds; + this.displayTime = this.getSecondsAsDigitalClock(this.remainingTime); + this.startTimer(); + } + + startTimer() { + this.runTimer = true; + this.hasStarted = true; + this.timerTick(); +} + +timerTick() { + setTimeout(() => { + + if (!this.runTimer) { return; } + this.remainingTime--; + this.displayTime = this.getSecondsAsDigitalClock(this.remainingTime); + this.percent = this.percent + 1; + if (this.remainingTime > 0) { + this.timerTick(); + } else { + this.hasFinished = true; + } + }, 1000); +} + +getSecondsAsDigitalClock(inputSeconds: number) { + const secNum = parseInt(inputSeconds.toString(), 10); // don't forget the second param + const hours = Math.floor(secNum / 3600); + const minutes = Math.floor((secNum - (hours * 3600)) / 60); + const seconds = secNum - (hours * 3600) - (minutes * 60); + let hoursString = ''; + let minutesString = ''; + let secondsString = ''; + hoursString = (hours < 10) ? '0' + hours : hours.toString(); + minutesString = (minutes < 10) ? '0' + minutes : minutes.toString(); + secondsString = (seconds < 10) ? '0' + seconds : seconds.toString(); + return hoursString + ':' + minutesString + ':' + secondsString; +} + getDeviceLocation() { - let isVirtual = this.device.isVirtual; - if(isVirtual==true){ - alert("emulater>>>>>>>"+isVirtual); - alert("You are using virtual device"); + const isVirtual = this.device.isVirtual; + if (isVirtual === true){ + alert('emulater>>>>>>>' + isVirtual); + alert('You are using virtual device'); return false; } - this.permissions.requestLocationAutherization().then(granted => { this.location = granted as boolean; if (this.location) { @@ -114,9 +219,8 @@ export class HomePage implements OnInit { this.attendance(); }) .catch(error => { - console.log("Error getting location", error); + console.log('Error getting location', error); }); - } else { return false; } @@ -128,8 +232,8 @@ export class HomePage implements OnInit { setServicesPrivilage() { for (let i = 0; i < AuthenticationService.servicePrivilage.length; i++) if (AuthenticationService.servicePrivilage[i].Previlege == false) { - document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).setAttribute("disabled", "disabled"); - document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).style.filter = "grayscale(1)" + document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).setAttribute('disabled', 'disabled'); + document.getElementById(AuthenticationService.servicePrivilage[i].ServiceName).style.filter = 'grayscale(1)' } } getCount() { @@ -169,20 +273,19 @@ export class HomePage implements OnInit { ionViewDidLoad() { this.getUserDetails(); - console.log("getUserDetails"); + console.log('getUserDetails'); this.geolocation .getCurrentPosition() .then(resp => { // resp.coords.latitude // resp.coords.longitude - //console.log("Loc 1"); console.log(resp.coords.latitude); console.log(resp.coords.longitude); this.lat = resp.coords.latitude; this.longt = resp.coords.longitude; }) .catch(error => { - console.log("Error getting location", error); + console.log('Error getting location', error); }); } private openMenu() { @@ -193,12 +296,12 @@ export class HomePage implements OnInit { .loadAuthenticatedUser() .subscribe((user: AuthenticatedUser) => { if (user) { - this.events.publish("setMenu"); + this.events.publish('setMenu'); this.userData = user; - //set User Info + // set User Info this.sharedData.setSharedData(this.userData, AuthenticatedUser.SHARED_DATA); this.user_image = user.EMPLOYEE_IMAGE - ? "data:image/png;base64," + user.EMPLOYEE_IMAGE + ? 'data:image/png;base64,' + user.EMPLOYEE_IMAGE : this.user_image; console.log(user); } else { @@ -207,7 +310,7 @@ export class HomePage implements OnInit { }); } public Vacation_Rule() { - this.common.navigateForward("/vacation-rule/home"); + this.common.navigateForward('/vacation-rule/home'); } private getMenu() { this.menuService.getMenu().subscribe((result: MenuResponse) => { @@ -217,8 +320,10 @@ export class HomePage implements OnInit { private handleMenuResult(result) { if (this.common.validResponse(result)) { if (this.common.hasData(result.List_Menu)) { - console.log("list menu"); + console.log('list menu'); this.menuList = result.List_Menu; + console.log('umar: ' + this.menuList); + this.getMenuDetails(); } } } @@ -230,31 +335,33 @@ export class HomePage implements OnInit { this.common.openChangeImagePage(); } - public getMeunDetails(index) { - let item = this.menuList[index]; - let selMenu: MenuResponse = new MenuResponse(); + public getMenuDetails() { + const item = this.menuList[0]; + const selMenu: MenuResponse = new MenuResponse(); selMenu.List_Menu = item; selMenu.userid = this.userData.EMPLOYEE_NUMBER; - console.log("menu: "+selMenu.List_Menu); + console.log('menu: ' + selMenu.List_Menu); this.common.sharedService.setSharedData(selMenu, MenuResponse.SHARED_DATA); - if (item.MENU_TYPE == "M") { - this.common.openMyTeamPage(); - // this.navCtrl.push("MySubordinatePage"); - } else if (item.MENU_TYPE == "S") { - this.common.sharedService.setSharedData(item, 'mySpecList'); - this.common.openMySpecialistPage(); - //this.navCtrl.push('MySpecialistPage',{"mySpecList":item}); - } else { - this.getMenuEntries(item); - } + this.getMenuEntries(item); + // if (item.MENU_TYPE === 'M') { + // this.common.openMyTeamPage(); + // // this.navCtrl.push("MySubordinatePage"); + // } else if (item.MENU_TYPE === 'S') { + // this.common.sharedService.setSharedData(item, 'mySpecList'); + // this.common.openMySpecialistPage(); + // // this.navCtrl.push('MySpecialistPage',{"mySpecList":item}); + // } else { + // this.getMenuEntries(item); + // } } getMenuEntries(item) { - let request: any = {}; + console.log('umar I am clicked2'); + const request: any = {}; let selEmpNo: string = null; let nationality: string = null; request.P_SELECTED_RESP_ID = -999; - if (item.MENU_TYPE == "S") { + if (item.MENU_TYPE === 'S') { request.P_SELECTED_RESP_ID = item.RESP_ID; } else { selEmpNo = this.common.sharedService.getSharedData( @@ -269,8 +376,8 @@ export class HomePage implements OnInit { request.P_SELECTED_EMPLOYEE_NUMBER = selEmpNo; request.P_MENU_TYPE = item.MENU_TYPE; request.NationalityCode = nationality; - //set emp and resp id - console.log("set data"); + // set emp and resp id + console.log('set data'); this.common.sharedService.setSharedData( selEmpNo, MenuResponse.SHARED_SEL_EMP @@ -288,10 +395,12 @@ export class HomePage implements OnInit { } sortMenuEntires(list) { - let tree = this.common.list_to_tree(list); - this.common.sharedService.setSharedData(tree, "menuEntries"); + const tree = this.common.list_to_tree(list); + this.menuEntries = tree; + console.log(this.menuEntries); + this.common.sharedService.setSharedData(tree, 'menuEntries'); // this.common.navigateForward("/eit/homepage"); - this.common.openEITPage(); + // this.common.openEITPage(); } private handleMenuEntiresResult(result) { @@ -313,8 +422,8 @@ export class HomePage implements OnInit { // flash: "off", // drawSight: false // }; - //console.log("your currnt location is"); - //console.log("Loc"); + // console.log("your currnt location is"); + // console.log("Loc"); this.permissions.requestCameraAutherization().then(granted => { this.camera = granted as boolean; if (this.camera) { @@ -352,25 +461,25 @@ export class HomePage implements OnInit { } swipeAttendance() { - let request: attendanceSwipeScannerRequest = new attendanceSwipeScannerRequest(); + const request: attendanceSwipeScannerRequest = new attendanceSwipeScannerRequest(); request.Latitude = this.lat; request.Longitude = this.longt; request.QRValue = this.scannedResult.text; request.UID = this.deviceID; request.UserName = this.userData.EMPLOYEE_NUMBER; - console.log("request"); + console.log('request'); console.log(JSON.stringify(request)); this.attendance_service .attendanceSwipeScanner(request, () => { - console.log("Error inside in swipe attendance"); + console.log('Error inside in swipe attendance'); }) .subscribe((result: Response) => { if (this.common.validResponse(result)) { - console.log("response"); + console.log('response'); console.log(result); - this.common.presentAlert(this.ts.trPK("home", "swipeAlertSuccess")); + this.common.presentAlert(this.ts.trPK('home', 'swipeAlertSuccess')); } else { - this.common.presentAlert(this.ts.trPK("home", "swipeAlertFailed")); + this.common.presentAlert(this.ts.trPK('home', 'swipeAlertFailed')); } }); } @@ -378,3 +487,14 @@ export class HomePage implements OnInit { this.common.openProfile(); } } + + + + + + + + + + + diff --git a/Mohem/src/assets/icon/new-design/advance_payments.png b/Mohem/src/assets/icon/new-design/advance_payments.png new file mode 100644 index 0000000000000000000000000000000000000000..f867e01349c9ddc9d06a5a2d838ceb8279774df2 GIT binary patch literal 1116 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 Hu0mjfY>|XT literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/new-design/id_badge_request.png b/Mohem/src/assets/icon/new-design/id_badge_request.png new file mode 100644 index 0000000000000000000000000000000000000000..2af2dff76a790ef6b6edb463404b5094089fe23f GIT binary patch literal 1231 zcmV;=1Tg!FP)Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91E1&}a z1ONa40RR91A^-pY06+u>vj6}DMM*?KR9FesSY1q1M--lA0e59#X($m=lZ{|3HKi;K zjmBVBqCPe)FKyBXO^UJh#gMdVN-#cIc`0chn)nm@&=(~pZT)#MQQIXnBz@thRok?p zX=%hZX<#c2Y+xO~Z=9Ljyn6bxR5&SfSrZhRDx&3A=XPPBBS4b}q zgiE5`I$WPVTpXV19=D!0F$YAn9f!_YN^`D|Uf=-Ss{lLtE$|1BSK+zh17SLnt&T6j zD%*Ny-U8~5ur{x*1z%ZdNw~Qw>+?G^azm7bE5{cS527sU5?LCm5TPxbT;a^z#o7PG z>~D9O{3VY;X{aHRXg%>sIJ4AiQvgI^}nE3ToZ$R?*}$|nadXSa-x$38R3dJSEkD{;%7 z1sOEQfP48x5i|bGaARlV#wk**IA(GiwBr}}8sInUG{6h`G!Ov_F3WXx6l^#y{p$mZ z{)+Vv@d8Qd7~d>?Kp{kNG-uXpL4Jq?s$YFsG#x!Gg7q8xI>|RPc2nH=s88T-{TQ)Y z;D8=;s-K(=?1R8oz`}}?q=2>1#Q5?MTd0eUi{*r4dUT3xg-Ab7=im$0<2|VBaTID}i2AR_a{NPCb)M2k=ex(!kL-V2i z*K2|oSy576W^*I&z9ptET@#IsjUp5Zi9{kHf*b2pSDCb7?@n>+h~gE4`?;Q21Fd#Q z`zxvcbOPsm0}Ojj@FF{xnom}l)~8hQmTD)|BkRaGfshN#gb%$)kR$F~FQ+j{Ows>zXHY+iH5b_}PPmZLQs z!>YURWh@pm9Md$fGLCDwZvtLre*zT#`zQ{O5cB(i!`glwdO+Jy;%9(6@O6&pl({PF9Xbo2a z-9DesXTAlPXMy;A_=W^?*HSD;Yb>)GJH?|B2Y3%gfI^DpXpKUyzRI-}N8YpC<`&?) tRTd~zI$!0K+x*cDECOU-tl+~g9s#|%-`q`GsDuCj002ovPDHLkV1g;5BM1Nh literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/new-design/it_forms.png b/Mohem/src/assets/icon/new-design/it_forms.png new file mode 100644 index 0000000000000000000000000000000000000000..793d983c6c19057211b074646fb14094a22158b5 GIT binary patch literal 853 zcmV-b1FHOqP)Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91AD{yO z1ONa40RR91C;$Ke06Ap^_b+hh<<{m)YGTpv67O!~4!V z^S;mSJ2QX~5sqO3P;Z$d)b~Lb6cTKKZ@{-;7u*J16eWoUxCd4_2*3`V9ia@JG1zqQ zQ2}3pg>X3NwX_K9Qpn-Se!WOOg@>S9Dx!GM_bXoDmr0?+XAt&~->L<^%R04z@6qN( zZt+^b*K}klxb<5Gx2L6%kdhsnK~75-wSM{Q4YqWu!zxZYw`l>b?IiE3B zm?vik&ZDzKC}_292afmjCO87`%zc=`VE(UlS-fgq%H$WsIQJMdKF3AL{3H|t);H%9 ze+Pep#)n%N%uj`_?JtnQwi7QSbEQu{cq(k-ACd7WHLFRS8Dsy zc!h2Fwl_CdZBt!#F!ie0#NQ$5{-(;ve*%6@t78+tZhKnCip2iUw&(smFY>B+*V+!; z^;OH;#lq|U>7E;L?(Z(KXT*kZd^6aAb)mt3Lk<3W^}th5%?YzLu)|I89P}toRKPa4 fi}ow%binZ+oYL{r!%}AV00000NkvXXu0mjfiJ*fB literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/new-design/leave_balance.png b/Mohem/src/assets/icon/new-design/leave_balance.png new file mode 100644 index 0000000000000000000000000000000000000000..c915cc7eeceed83b46d15d8587cffb827c6f63cb GIT binary patch literal 1324 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 UUs)QS-T(jq07*qoM6N<$f^ta7RsaA1 literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/new-design/medical_insurance.png b/Mohem/src/assets/icon/new-design/medical_insurance.png new file mode 100644 index 0000000000000000000000000000000000000000..21196156649bbbb7ffeb92bb5ac2d9d9c245566b GIT binary patch literal 815 zcmV+~1JL}5P)Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR919iRgM z1ONa40RR91A^-pY0N%nIJOBU!rAb6VR7efAl|5G5KomyDA_bvxR)ET!G;!(_%noo? zfOY^ou(AVK0op;FY#^dYT1=DH$_j8Ak|tK}XXbGfSuz+)-#M3gKQr&mXe8s@_KI2Z z6-u~-A@nLw^;=Lw;~IMeolB>gfHj(8tI;gPw2>3&L@KOi)zhVw%0ui7Y%_CgHIJcH zgOE}2w-5(kqX&(qD~uF!sLK;b;Rs9x#uOGIAYU~!x-+ny)<;dqz{68CW|B3k*D`-R zVA337xPa=ea{L0Gs}T!53_}6=$Dq?boKkk5@)Xx;^Qg}*ZM9#tC7R;#^{3&%U36N{ z-5o41igzFEYU=4Vf2*c6Jfp&-USRZ(J^u1ht;HUaI~ZzOg!Q8x>O5s>945`wbP=3hP8Divh=aXQ(^+u( zKB?88=|yU7T1Lxsu#9}zl>LVf%47 z$5!G5QYc_ex~rv&d_BS4XZ2XcPq1Uqqs`zyWq2iM>{7Z*)lHj<#srlV9=gyOMO3eV zAv7u_s!6vnf?brb*bXs%tWX{%t8we@9x0*?YrUGDKQecfR-+kc!5lnnqlC%UFxzHf zwXvE{p0HSJEJHaErINuJdOSV0v(g%M1^9;NcL5NGH{ t31t>w&8uTUJb~VnPPx#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR918lVFJ z1ONa40RR91Bme*a0C5nK*8l(mMM*?KR7efAlZ|m3HxNcWo)mB$1SPNoqXc#kqyk?D zLJ90Z=s@g1NCjdCx>OLlg5*64%Q?~xN7RhInWz2s2MZiM{_^GXlvw=~>%WHigxJ{m z;}iB?tjuIbn4V(C`yDd;N}b~0ut2C`cHm_f{J-xy*X9hV#PNwCiqDXyReT=8qvH#^j(}l zHSmnJ2T1TP6{g~K9@xSWCKI#+7r#K%>Zn;?qGq_j|5SMN6D!~jLqHl~o z_WxCBEs!71f3 literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/new-design/pay_slip.png b/Mohem/src/assets/icon/new-design/pay_slip.png new file mode 100644 index 0000000000000000000000000000000000000000..7aab9d1e6ba21dfcaf076d6a8c9f5f48f880fac2 GIT binary patch literal 1200 zcmV;h1W)^kP)Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91A)o^Q z1ONa40RR91B>(^b0Kf1duvPc0# z0F&+}5Uw$$w0QI{s96aIv}n(D$c{I5ZA-)0rn?;jIOI>ORNf!z-75MIy)Sxp4vOB9 zcSZ3|PLv-mi`Bnxi1MRlp+zINt=ah^C1~(m$BMDR>dRq^N2KRjTjffBLZW^!htRR*?pOO`V zvFYRR1!Sz!6`)_~SFj#YdoD5wc`-wMy+2r`(%{hfuUkrh-mDT6X4^n1z`t@3*1$9*xVC}KZH6>J&pZJEcHM)G3DhHF7=M`3B&_`-p)1e$iqP9S;xYFe|b znVON>aF!^#h}BdWQ?i9R8TTHNAF$$L&Z7_;8xzTe*(=$R&nBsClmK-cWQuq>^J;IZ zl~0&Z`@C8mOE}!$ceA*Zd(R;SqiI^wS`%|f&kjrmo;_Nhz4uw`{?9($r8>6O)I z2FLN*;$4ps6VZzL)1UP+s?{? zNv!BwV;2hl-Vz)W|T}ga1=IW4=((2f@<+DoWSmfKW@x1tz7Kto!^0k@> z6IePuC0?!-`4yW7G#B#VNh^S@YdE&0C4L5w$PH_KeYpS7e)0Ci3Eu(657*;ge?tX+ z;;1X&EjkF_tR1Ayl~r_n%B4SAa~_qEqntx1hA%3I89&>_J9h=!CW#lZTseh(zAEVG zS0>TOGXX^gpivEaJhlY>B9H{SL5yv(S3yLhb3i7@s7{x_epemu-ttb=w~q1WTlvfH z4iv;^pgbOA0G;Q-yPd=&4lx3f$ouKKox}SCS O0000Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91B%lKT z1ONa40RR91BLDyZ0K4WL)&Kwk)=5M`R9Fekmw|QKFcd{ePX}OwDihQjRGlDXf~XtN z3Bm@Y6U3b$bb`VFN^kizumvwe@C81B3`h>{LBEOuLKy~k;lz=6%lfw<$M>kFWT-7AT!T)||12Mf zWpD*;StdTVCnICk4-IuvUzxF;*~w(doYwTy%wa593ad|}Lxz+v0~s4rmg32V#x&w< z?-_dIXaAS$sfMN)e*|4eQQxmD)@WTXma(Ku)=n{$)5z3t8B7J0^w&kDK0_HRdNFTXaM0+GAthumZ!(7oyqSV>igVbz>6jsM2UXjQFP;DtYsrQzn{})XQl-Y7hV^E{RrO>{d5tt_o6&CZCKxNsKzFm$AW>>^$V_al zb3%qfB|L&QiVftDs#wF=T2;T~)3rKfj0=#FLwDKQ(hOq_V{1);6;a-d{s!8t`2rND zYDuCVgL!L%Y9!sGkjqtctxOB>ek4pucK*JJt-B;>?5^;q@v_FcmQQfiUbm19bV qbZ048@}vxupMwJ#`sb3Vi}VMcrO=@%eSh2l0000Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91DWC%Y z1ONa40RR91DgXcg0HjFVwEzGG0!c(cR9FeUmO*G7RT#(LCYxGK6IU%s8wxuS(Tke3 zhgKBbDFva2;?z^cLq>!k9?})@Ac!4B@F3U~FB*|<4$@wvyPiZ3JJC}r+Cc=tiaP

_rCYN?|t)TW)mUe$wYcB-jeRK`!*?2z+5IY zuVGBWG7!jxgGrCMVI34h8(A_Q3~LxHgK{vqUA~Qt*r*1S3^=YDNLzwso({HM>NE>m z?CfE_yhTn|)2YB}Hsu7ybT!}t&P_@SBRpV(S&#uP2#T>*@nBAD-^2<&vMR^{C2n*M zaL(t>y(0}jmF~ZWxB-H)FyK4tf}V=a6oG1hV{(D9u_I64%vWaWN4~E#c;v0=x@vgf zzTsDpM_GV1T%d!VDEPQpPy+^F!#qI)&4_(R55wK4TdUW^{L62O)n99zd`xEKU`x{P zi3vBUigKe1IKj1vcV63}g37vQz7!WfJuCLV|AxS6in(W}XwU!i=i)(?1DglB9MgKh z0WO%67G`UuBT`Jp$6q+Mp+Uy)-T$!vP=9>=J)u`-#7O?2Se%@=z zd7*d)V>U)g5(m}5<&K3*bZA$|_% zzy%cFJ2K0`b}6dK3>r8A7JvCz@;awyE-XiDw5K5Fw?MqZMS zJcIf*;DG|@NIF)r$zn&Vw_c9IIbG>!14+4#!Xc#>c1d0-;T{9 z$!#Z5<`}ROfqXt*FED4qUjStp>)PZ{fp=}SS;<5m^EZP{vu;D(o}?)&wR_k6+2XH) zA=ibChkz3fb~|2YQa2}QVkd6QyRU++#9YeuuiJDnvCn4jR;xJ&YgDss axA{NCVPIOkwog_70000pur00001b5ch_0Itp) z=>Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91C7=TU z1ONa40RR91C;$Ke085bPga7~pkV!;AR9FeUm(Ob)Wf;dNzcfn|vI-U(l}sYE2Ps*- zNKYB@(u2?yFZCb}LJwZd<{z-5mmag?v4@NYp|`A9@nkXu4=q}=rS(w3W?Cf07R;1Z zau94k-|4*Z&1AE?v)TBCPu}Nw-sgSZXP=!;6UXVSv!txU;~uDVF26ftcz0+=q>fjG z8YDY*Iy*XB?wnRELj^URO0i?x*_y7m?e)P>Bb(6dv6jm@eITuUlNze+quMHG)zp4! z?7ChBi>l0lQ?Le_a2*;@Sc6@jSSC-6wnNiZ6A!?H1j)0khCk zGn`AMOIk@2@t^`V_$FIfI;ug2&L^NoJ=nL(R8Y}4TLac23P@H%B7(lCMwKRbpyrHx z4A(fh)yH?USil-V74)1HR;y>KOqHZXC7+mU#g%8|W4Ol2R@Ja`a@)mRk92*)MX)F3 z;v3a48pdIDEjz$ogJp=Iuv$$jqRMCRR<2rX`I^8im`T`sN}GlO@S(5rsAf;fE?&Wj zz=OO30#QELPhU;BRzXe1Ovi-neZ@iu;J_48S_DYPG?@m3ps9FZq$ZXj zfm*i8SG=!M!FgB%H4%W3kD-`W_4$wPM-xIu0aU;ie|wm z%#1p#a&JQw5|GL;1q)Dt2B^Uh^14JI$_H)V$I)RG@xVxzBv8u&@)zMT#IOz?NZOMh zfRSPiP`+qFl%f0fl*^71d}yUALG90jE>&?4By-_1_7dpQyaEDs(4O*)>^dg4y@pt# zodPyvsDX-AKx#k;5j2NOrE|{U;2mt`6lQ32^!v%vr(PN0u%_@XM9_^wl0LK&U&q!I z)acr4pMK(u9yx4ncW-W7TyY-$cI&1d^m6yd(oC11UqJ|~V9tA`myg_@eCO>cVm<5X z$1BGMdpzCXTm;vw^X08S?oR#l@R1cNW^Vp+BR$YdQ*)e5vg@>ZnVl}be*UGCZ)|Jh zPv`gZ7q;2>ZpA*5+I(%!oeSTlw*8*kmDncG%=XOswAlFA0~(mP{K10r{2Rx&pRN0s zF4O4WPAPlVZk@luv$O6Dj~z7 z(lgdp<40$h#!TBBdvnlsy0l{}&$g}b{>-9Hd0ZD;R~p+Rrm6KsdZVkD{!fZQ@*#!@ z^70A95P?yE5oV76(t9T#jf{=`oB4&7`#=6v8hZAbrke6I3Kck@eAU QMgRZ+07*qoM6N<$f&zSIVgLXD literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/new-design/ticket_balance.png b/Mohem/src/assets/icon/new-design/ticket_balance.png new file mode 100644 index 0000000000000000000000000000000000000000..f769f41c055d87112edf27d4aec6beca4f5468e1 GIT binary patch literal 999 zcmVPx#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91FrWhf z1ONa40RR919smFU0EQ0VQvd)1T}ebiR9Fekm+@8GFc60Wum9r>@CLXOMBN}8U?w0; z5HSJi1W6|#od7Wb?gTXxkWP?(KS$yzj_jl~Kz{FizSG@VI$3sj3e0;U9u!pGd*op zjQrSQYwsVUu{5O<8n!o}`Zx>(4TIzD z0;`$~D(@TYAvI^RV#kDz{A$+;7>ZP=S0zYIOIo0mgOtx2?=Y8=X~H_1(SX+5Qv40% zWcB+iUBVD@kV;U4n)Do`2{=$plh3@5Ik-w@)T?VCscWLEBj<(w^q_(q&PpdRf+_q0 z3rqNDl`MD(UB5<#oKE~6^sBegqa&cFpTlR#vaotE&?QSkH6=(6nvZyh^9VJhlo3>o zC{hLQ6l<^L{5pBOUi=Zq@z@_Tm_z{`VHJ&2ZbtADWK+@ubE$-n71$@Zf;n_*pAFRh zZha#cFavF(Ph*ntrrWj81oC$9E#rMQQ2B`+R$PPiV3M*#T{5!{);&3;wB|l1-AuFM z>Kbo-u^4^r*?QPqLyclJXk5UdWSK~F8t9TCp&AS7;{{ym1PqBGsro40to=aX3S6APR}ac%FokAUPL7wuuKtnV{@!55JMM4STVHRm zk^%K#A;{pweQAwB>I4)I`i`@N63*ckGPnjwW2su3*Q>(|xz}LiwCkhPPWLAjW2jZx zw*ejBTt!GX=-4exK~jTOPC{x>yoWSz9VSj~pd^`t11Sf+%ev8ko_^R2?&m7Cftr>? zQ0|>2_8$Jg$j7>j^5Hd0)zk!a!vC$*2HKMv9|#TIFs^;9&z$rm`*JbD>E@?8;m3*i8l6lM4+?gLM_o`Do2RTgOSe4V* zoo{XtH>r0~J9BUWwFmQ|%2`cRuf5T`KN>mX4wL2Ey(U*ZO{RJdV VH@zR-a*6-|002ovPDHLkV1oVSxQGA% literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/new-design/ticket_request.png b/Mohem/src/assets/icon/new-design/ticket_request.png new file mode 100644 index 0000000000000000000000000000000000000000..f455ce2eb69a6919e75a8a431be7e7fed93dbc15 GIT binary patch literal 1060 zcmV+<1l#+GP)Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91FrWhf z1ONa40RR919smFU0EQ0VQvd)1nn^@KR9FekS3y?WFcg&1Zdl0LQYqp2MWnc1u^ro%?12e*1eV~V$EQw__D3MZq|6}( zn-D`_%&1d|=$n3wHZ}G(HZhXo8|qaH;Oir1dE>l};k`2qoDu7H4lpEXBSk0pYsGA9srn?(38z+{PD%sHyYRNp{VclC?SbqO&5YlFIOf=@2ttl^%*tzeL? zh!Mff5rPGJg<;wWTE=)_V(bv@I&p)+f|dalblvs_LIg38OQislCOAPv1EB6@)_N`x zhAHOZh#|=NYOwc!50&RHaSHZ8A0#4>33AXqkQjmrq>qDN8yn5q5n)6w-4Jx*9A3TU z{Ehthpb97$ns1;Fj=(7xgEMf`h%n(P*mN3&(D=s3AWywgjtUMweINWN#F&^lgkTe5 z2#kq9LV?*P?!mYRQ_zXvY3v0L^X`!N)Atwvgqu2 z@ScKfUEl*#F5$Jl)e7jyRBGXAot-pXgKa>;i!WMNEKd~QCA`+RS^@KyM97YiQU<}p zZJZo_i(4k5u9n24OSD%>wE~!+ka}P2=(D7IGUI4mHr>bDY+xzH5KC#Y!ctP%4exW| z(&TT}eXRg|v4m2{o_-d7_wfgpLIy47Dg1uc5%RjE?YvBjVskya2Dt88ecPO(lRX^U zxuVU)??4tYsuy5J;c~&oRi=x&WMO7Y$=1YQnL_-s2*^KuudII6OyRKOtNOBj--s7z zCyfO#2#4->T(T!6rH=4Hxko>N4SktgxXMq-!p;qa=D%JM(XGbUBbq&2%L6cFNMiw7 z%CqF)_=Z75_i@6TGBEj;jm!k!lBAi**>K#nQ0fK9d4wnLCkH302nv3VeW7K(p0${^ zBwyUNk+xO<5>GKRX~WMu`j77DzAZG^j5%-6=uW{i8gE6d0Ox@7PRKp1MJL9xN}Vxv zC+=v(GOh6@m#|s^Vm?9gUh?&Lyq6`(SE_W~1;i8<~KmCyYK3X4m`=&&b%NhDA_FK%Amm eM}?e1u!etfhEB3GO)PN$0000tN literal 0 HcmV?d00001 diff --git a/Mohem/src/assets/icon/new-design/uniform_request.png b/Mohem/src/assets/icon/new-design/uniform_request.png new file mode 100644 index 0000000000000000000000000000000000000000..3e104c708964a8b4fe2d0c26e20b79e75ffd4e4b GIT binary patch literal 1069 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 literal 0 HcmV?d00001 diff --git a/Mohem/src/theme/styles.scss b/Mohem/src/theme/styles.scss index 73b3023f..d1df6cd7 100644 --- a/Mohem/src/theme/styles.scss +++ b/Mohem/src/theme/styles.scss @@ -855,3 +855,17 @@ color: var(--dark); // left: 0; // width: 100%; // +// .employee-slider .custom-button{ +// padding: 13px !important; +// } +// .employee-slider .iconBox img{ +// max-width: 40% !important; +// } + +.slideFullWidth { + margin-left:-15px; + margin-right:-15px; +} +.slideFullWidth .swiper-container .swiper-wrapper .swiper-slide:first-child { + margin-left:15px; +} \ No newline at end of file diff --git a/Mohem/tsconfig.json b/Mohem/tsconfig.json index b271fd9f..1d9c2de7 100644 --- a/Mohem/tsconfig.json +++ b/Mohem/tsconfig.json @@ -18,5 +18,10 @@ "es2018", "dom" ] + }, + "angularCompilerOptions": { + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true } } +