Table loader issue fix

This commit is contained in:
Surendiran 2023-05-26 18:29:16 +05:30
parent 1df4e8b746
commit fe910c9c99
23 changed files with 237 additions and 64 deletions

View File

@ -14,10 +14,10 @@
</mat-option>
</mat-select>
</mat-form-field>
<!-- <mat-button-toggle-group name="fontStyle" aria-label="Font Style">
<mat-button-toggle-group name="fontStyle" aria-label="Font Style">
<mat-button-toggle value="List">List</mat-button-toggle>
<mat-button-toggle value="Calender" (click)="onClickCalender()">Calender</mat-button-toggle>
</mat-button-toggle-group> -->
</mat-button-toggle-group>
<!-- <a><i style="font-size:24px" class="fa" (click)="onClickCalender()">&#xf073;</i></a> -->
<button mat-button (click)="openDialog('Add',{})" class="button">Add Appointment</button>
@ -71,20 +71,21 @@
<th mat-header-cell *matHeaderCellDef class="font-color"> Action </th>
<td mat-cell *matCellDef="let row" class="action-link">
<a (click)="openDialog('Update',row)"><span class="material-icons edit-color">edit</span></a>
<a (click)="confirmBox('Delete',row)"><span class="material-icons edit-color2 delete">delete</span></a>
<!-- <a (click)="confirmBox('Delete',row)"><span class="material-icons edit-color2 delete">delete</span></a> -->
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</ng-scrollbar>
<mat-card *ngIf="isLoading" style="display: flex; justify-content: center; align-items: center">
<mat-card-content *ngIf="isLoading" style="margin-top: 5rem;display: flex; justify-content: center; align-items: center">
<mat-progress-spinner
color="primary"
mode="indeterminate">
</mat-progress-spinner>
</mat-card>
</mat-card-content>
</ng-scrollbar>
<div [hidden]="recordStatus">
<mat-paginator #paginator class="mat-elevation-z1" [length]="appointmentListLength" [pageIndex]="pageIndex" [pageSize]="pageSize"
[pageSizeOptions]="[5, 10, 25,50, 100]" (page)="pageEvent = $event; pageChange($event)" showFirstLastButtons>

View File

@ -142,4 +142,7 @@ tr.mat-header-row {
::ng-deep .mat-button-toggle-button {
padding: 5px 7px !important;
}
.action-link{
text-align: center;
}

View File

@ -69,6 +69,16 @@
<mat-label>Choose a Time</mat-label>
<input matInput placeholder="Select Time" name="week" [readonly]="!form.get('service').value" formControlName="appoinmentTime">
</mat-form-field> -->
<mat-form-field appearance="outline" class="mate" *ngIf="action == 'Update'">
<mat-label>Date</mat-label>
<!-- <mat-datepicker #picker4></mat-datepicker>
<mat-datepicker-toggle matPrefix [for]="picker4"></mat-datepicker-toggle> -->
<input matInput placeholder="Choose a date" formControlName="appoinmentDate" readonly>
</mat-form-field>
<mat-form-field appearance="outline" class="mate date-marge" id="bt" *ngIf="action == 'Update'">
<mat-label>Time</mat-label>
<input matInput placeholder="Select Time" name="week" formControlName="appoinmentTime" readonly>
</mat-form-field>
<mat-card class="cardDesign">
<div class="innerdivs navStyle" fxLayoutAlign="center center">

View File

@ -115,7 +115,8 @@ export class DialogBoxComponent implements OnInit {
console.log(data);
this.local_data = {...data};
this.action = this.local_data.action;
this.frontDeskChoosedPractiID = this.local_data['ServicesMapDetail.userId']
console.log(this.frontDeskChoosedPractiID)
}
get f(){
return this.form.controls;
@ -489,6 +490,7 @@ export class DialogBoxComponent implements OnInit {
goToSlotBooking(i){
console.log(i)
// this.days[]
if(this.clicks <this.advanced_slot_days){
@ -511,7 +513,7 @@ export class DialogBoxComponent implements OnInit {
}
let params ={"id":userId , "day": this.dayName , "addcount": this.clicks}
console.log(params)
this.end_user.getSlots(params).subscribe(res => {
if (res.status == 200) {
console.log(res)
@ -528,8 +530,10 @@ export class DialogBoxComponent implements OnInit {
// });
}
})
this.form.controls['appoinmentDate'].setValue(this.days[ this.clicks])
}
goToSlotBooking2(){
// this.days[]
if(this.clicks >0){
this.clicks -= 1;
@ -550,7 +554,7 @@ export class DialogBoxComponent implements OnInit {
userId = this.frontDeskChoosedPractiID
}
let params ={"id":userId , "day": this.dayName , "addcount": this.clicks}
console.log(params)
this.end_user.getSlots(params).subscribe(res => {
if (res.status == 200) {
console.log(res)
@ -559,6 +563,7 @@ export class DialogBoxComponent implements OnInit {
}
})
console.log( this.clicks)
this.form.controls['appoinmentDate'].setValue(this.days[ this.clicks])
}
check(param){
return param[this.clicks];

View File

@ -1,19 +1,19 @@
<h3>Business Details</h3>
<div fxLayout="row wrap">
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="30" fxFlex.lg="30" fxFlex.xl="30" class="m-gap p-gap" fxLayoutAlign="start center" >
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="30" fxFlex.lg="30" fxFlex.xl="30" class="p-gap" fxLayoutAlign="start center" >
<mat-form-field style="width:100%">
<mat-label>Filter</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)" placeholder="Type Here" #input>
</mat-form-field>
</div>
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="55" fxFlex.lg="55" fxFlex.xl="55" class="m-gap p-gap" fxLayoutAlign="end center" >
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="55" fxFlex.lg="55" fxFlex.xl="55" class="p-gap" fxLayoutAlign="end center" >
<span>Active
<mat-slide-toggle class="example-margin"
(change)="onToggleChange($event.checked)"></mat-slide-toggle> Inactive</span>
<!-- <mat-checkbox class="example-margin" (change)="setAll($event.checked)">Click here to see Inactive List</mat-checkbox> -->
</div>
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="15" fxFlex.lg="15" fxFlex.xl="15" class="m-gap p-gap" fxLayoutAlign="end center">
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="15" fxFlex.lg="15" fxFlex.xl="15" class="p-gap" fxLayoutAlign="end center">
<button mat-button (click)="openDialog('Add',{})" class="button">Add Business</button>
</div>
</div>
@ -84,14 +84,13 @@
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
<!-- <tr mat-row *matRowDef="let row; columns: displayedColumns;" [ngClass]="row.isActive != 1 ? 'bgRowColor' : ''"></tr> -->
</table>
</ng-scrollbar>
<mat-card *ngIf="isLoading" style="display: flex; justify-content: center; align-items: center">
<mat-card-content *ngIf="isLoading" style="margin-top: 6rem;display: flex; justify-content: center; align-items: center">
<mat-progress-spinner
color="primary"
mode="indeterminate">
</mat-progress-spinner>
</mat-card>
</mat-card-content>
</ng-scrollbar>
<div [hidden]="recordStatus">
<mat-paginator #paginator class="mat-elevation-z1" [length]="businessListLength" [pageIndex]="pageIndex" [pageSize]="pageSize"
[pageSizeOptions]="[5, 10, 25,50, 100]" (page)="pageEvent = $event; pageChange($event)" showFirstLastButtons>

View File

@ -94,6 +94,7 @@ export class BusinessListComponent implements OnInit {
getBusinessList() {
//this._pd.getTabStatusPdDetails(this.tabStatus)
this._bus.getBusinessListDetails().subscribe(res => {
if (res.status == 200) {
this.isLoading = false
this.businessList = res.data;

View File

@ -236,7 +236,8 @@ mat-tab-body {
background-color: #FAFAFA;
border-bottom: 1px solid #EFEFEF;
height: 63px;
padding: 0 30px;
padding-right: 30px;
padding-left: 10px;
}
.staff-title{

View File

@ -57,13 +57,13 @@
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</ng-scrollbar>
<mat-card *ngIf="isLoading" style="display: flex; justify-content: center; align-items: center">
<mat-card-content *ngIf="isLoading" style="margin-top: 6rem;display: flex; justify-content: center; align-items: center">
<mat-progress-spinner
color="primary"
mode="indeterminate">
</mat-progress-spinner>
</mat-card>
</mat-card-content>
</ng-scrollbar>
<div [hidden]="recordStatus">
<mat-paginator #paginator class="mat-elevation-z1" [length]="customersListLength" [pageIndex]="pageIndex" [pageSize]="pageSize"
[pageSizeOptions]="[5, 10, 25,50, 100]" (page)="pageEvent = $event; pageChange($event)" showFirstLastButtons>

View File

@ -9,7 +9,7 @@
<div fxFlex.gt-sm="90" fxFlex.gt-xs="95" fxFlex="100">
<div class="messages-list material fullscreen">
<mat-accordion *ngIf="!recordStatus">
<!-- <ng-scrollbar class="scrollHV"> -->
<ng-scrollbar class="scrollHV">
<table mat-table [dataSource]="mailLogListSource" #mytable class="my-table mat-elevation-z8 len-table">
<ng-container matColumnDef="id">
@ -42,16 +42,17 @@
<td mat-cell *matCellDef="let element" class="element-spc"> {{element.createdAt | date:'short'}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
<!-- </ng-scrollbar> -->
<mat-card *ngIf="isLoading" style="display: flex; justify-content: center; align-items: center">
<mat-card-content *ngIf="isLoading" style="margin-top: 6rem;display: flex; justify-content: center; align-items: center">
<mat-progress-spinner
color="primary"
mode="indeterminate">
</mat-progress-spinner>
</mat-card>
</mat-card-content>
</ng-scrollbar>
<div [hidden]="recordStatus">
<mat-paginator #paginator class="mat-elevation-z1" [length]="mailLogListLength" [pageIndex]="pageIndex" [pageSize]="pageSize"
[pageSizeOptions]="[5, 10, 25,50, 100]" (page)="pageEvent = $event; pageChange($event)" showFirstLastButtons>

View File

@ -1,6 +1,6 @@
// .scrollHV {
// height: calc(100vh - 250px);
// }
.scrollHV {
height: calc(100vh - 253px);
}
.fullscreen{
position: absolute !important;
height: auto !important;
@ -16,3 +16,9 @@
font-weight: 600;
font-size: 14px;
}
th.mat-header-cell, td.mat-cell, td.mat-footer-cell {
padding: 6px;
border-bottom-width: 1px;
border-bottom-style: solid;
border: 1px solid #fff;
}

View File

@ -29,6 +29,7 @@ export class MailLogComponent implements OnInit {
displayedColumns: string[] = ['id', 'subject', 'recipients', 'contentPage','status', 'createdAt'];
dataSource = ELEMENT_DATA;
length = 5;
pageIndex = 0;
pageSize = 10;
@ -66,12 +67,13 @@ export class MailLogComponent implements OnInit {
this.isLoading = false
this.mailLogList = res.data;
console.log(this.mailLogList)
this.mailLogListLength = res.data.length;
// this.mailLogListLength = res.data.length;
this.mailLogList.forEach((element, index) => {
element.index = index
});
this.mailLogListSource['data'] = this.mailLogList;
this.mailLogListLength = this.mailLogList.length;
console.log(this.mailLogListSource)
this.recordStatus=false;
}

View File

@ -9,7 +9,7 @@
<mat-error *ngIf="myError('servicesName', 'required')">ServiceName is required</mat-error>
<mat-error *ngIf="myError('servicesName', 'maxlength')">Limit exceed</mat-error>
</mat-form-field>
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
<!-- <mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
<mat-label>Duration</mat-label>
<mat-select placeholder="Select Duration" formControlName="duration" required>
<mat-option>--</mat-option>
@ -18,7 +18,16 @@
</mat-option>
</mat-select>
<mat-error *ngIf="myError('duration', 'required')">Duration is required</mat-error>
</mat-form-field>
</mat-form-field> -->
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
<mat-label>Duration</mat-label>
<input appMobileNumberPattern placeholder="Fees" matInput formControlName="duration" required>
<div matSuffix>
<span><b>Mins</b></span>
</div>
<mat-error *ngIf="myError('duration', 'required')">Fees is required</mat-error>
<!-- <mat-error *ngIf="myError('fees', 'maxlength')">Limit exceed</mat-error> -->
</mat-form-field>
<mat-form-field appearance="outline" *ngIf="action != 'Delete'; else elseTemplate" class="mat-pane">
<mat-label>Fees</mat-label>
<input appMobileNumberPattern placeholder="Fees" matInput formControlName="fees">

View File

@ -61,13 +61,14 @@
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</ng-scrollbar>
<mat-card *ngIf="isLoading" style="display: flex; justify-content: center; align-items: center">
<mat-card-content *ngIf="isLoading" style="margin-top: 6rem;display: flex; justify-content: center; align-items: center">
<mat-progress-spinner
color="primary"
mode="indeterminate">
</mat-progress-spinner>
</mat-card>
</mat-card-content>
</ng-scrollbar>
<div [hidden]="recordStatus">
<mat-paginator #paginator class="mat-elevation-z1" [length]="servicesListLength" [pageIndex]="pageIndex" [pageSize]="pageSize"
[pageSizeOptions]="[5, 10, 25,50, 100]" (page)="pageEvent = $event; pageChange($event)" showFirstLastButtons>

View File

@ -78,7 +78,7 @@ export class AddUserComponent implements OnInit {
),],valData),
// password: new FormControl('', [Validators.required, Validators.minLength(6)]),
password: new FormControl('', [Validators.required,Validators.pattern(
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{8,12}$'
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{16,}$'
)]),
logo: new FormControl('', null),
// confirmPassword: new FormControl('', [Validators.required, Validators.minLength(6)]),

View File

@ -1,19 +1,19 @@
<h3>Users Details</h3>
<div fxLayout="row wrap">
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="30" fxFlex.lg="30" fxFlex.xl="30" class="m-gap p-gap" fxLayoutAlign="start center" >
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="30" fxFlex.lg="30" fxFlex.xl="30" class="p-gap" fxLayoutAlign="start center" >
<mat-form-field style="width:100%">
<mat-label>Filter</mat-label>
<input matInput (keyup)="applyFilter($event.target.value)" placeholder="Type Here" #input>
</mat-form-field>
</div>
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="55" fxFlex.lg="55" fxFlex.xl="55" class="m-gap p-gap" fxLayoutAlign="end center" >
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="55" fxFlex.lg="55" fxFlex.xl="55" class="p-gap" fxLayoutAlign="end center" >
<span>Active
<mat-slide-toggle class="example-margin"
(change)="onToggleChange($event.checked)"></mat-slide-toggle> Inactive</span>
<!-- <mat-checkbox class="example-margin" (change)="setAll($event.checked)">Click here to see Inactive List</mat-checkbox> -->
</div>
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="15" fxFlex.lg="15" fxFlex.xl="15" class="m-gap p-gap" fxLayoutAlign="end center">
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="15" fxFlex.lg="15" fxFlex.xl="15" class="p-gap" fxLayoutAlign="end center">
<button mat-button (click)="openDialog('Add',{})" class="button">Add Users</button>
</div>
</div>
@ -131,14 +131,14 @@
<!-- <tr mat-row *matRowDef="let row; columns: displayedColumns;" [ngClass]="row.isActive != 1 ? 'bgRowColor' : ''"></tr> -->
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</ng-scrollbar>
<mat-card *ngIf="isLoading" style="display: flex; justify-content: center; align-items: center">
<mat-card-content *ngIf="isLoading" style="margin-top: 6rem;display: flex; justify-content: center; align-items: center">
<mat-progress-spinner
color="primary"
mode="indeterminate">
</mat-progress-spinner>
</mat-card>
</mat-card-content>
</ng-scrollbar>
<div [hidden]="recordStatus">
<mat-paginator #paginator class="mat-elevation-z1" [length]="usersListLength" [pageIndex]="pageIndex" [pageSize]="pageSize"
[pageSizeOptions]="[5, 10, 25,50, 100]" (page)="pageEvent = $event; pageChange($event)" showFirstLastButtons>

View File

@ -20,13 +20,13 @@
<div class="user-pro-wrap">
<div class="user-profile-thumb text-center">
<div class="user-i">
<div class="profilepic">
<img *ngIf="getUserData.role == 'SADMIN'" src="assets/images/userpic.png" class="rad-full mb-1" width="100" height="100" alt="">
<img *ngIf="getUserData.role != 'SADMIN'" [src]="getUserData.logo != '' ? image_view(getUserData.logo) : 'assets/images/userpic.png'" class="rad-full mb-1" width="100" height="100" alt="">
<div class="profilepic" (click)="openFileInput()">
<!-- <img *ngIf="getUserData.role == 'SADMIN'" src="assets/images/userpic.png" class="rad-full mb-1" width="100" height="100" alt=""> -->
<img [src]="getUserData.logo != '' ? image_view(getUserData.logo) : 'assets/images/userpic.png'" class="rad-full mb-1" width="100" height="100" alt="">
<input (change)="onSelectFile($event)" type="file" #fileInput accept="image/*" style="display: none" />
<!-- <img class="profilepic__image" src="https://images.unsplash.com/photo-1510227272981-87123e259b17?ixlib=rb-0.3.5&q=80&fm=jpg&crop=faces&fit=crop&h=200&w=200&s=3759e09a5b9fbe53088b23c615b6312e" width="150" height="150" alt="Profibild" /> -->
<div class="profilepic__content">
<span class="profilepic__icon" (click)="openFileInput()"><mat-icon>camera_alt</mat-icon></span>
<span class="profilepic__icon"><mat-icon>camera_alt</mat-icon></span>
</div>
</div>
<div> <span class="hed-span text-capitalize">{{getUserData.userName}}</span></div>
@ -55,7 +55,8 @@
<mat-list-item appAccordionLink *ngFor="let menuitem of menuItems.getAll() | roleMenuItems:'1'">
<a appAccordionToggle class="relative" mat-ripple [routerLink]="['/', menuitem.state]"
*ngIf="menuitem.type === 'link'">
<mat-icon>{{ menuitem.icon }}</mat-icon>
<mat-icon *ngIf="menuitem.key == 1">{{ menuitem.icon }}</mat-icon>
<mat-icon *ngIf="menuitem.key == 0" svgIcon="service"></mat-icon>
<span>{{ menuitem.name | translate }}</span>
<span fxFlex></span>
<span class="menu-badge mat-{{ badge.type }}"

View File

@ -16,6 +16,8 @@ import { environment } from 'environments/environment';
import { NotifierService } from 'angular-notifier';
import { BusinessService } from 'app/appoinment/business/business-service/business.service';
import { UserService } from 'app/appoinment/user/user-service/user.service';
import { MatIconRegistry } from '@angular/material/icon';
import { DomSanitizer } from '@angular/platform-browser';
@Component({
selector: 'app-layout',
@ -60,11 +62,16 @@ export class AdminLayoutComponent implements OnInit, OnDestroy {
// fileInput: HTMLInputElement;
@ViewChild('fileInput') uploadImage;
formData: any=[];
constructor(public _use:UserService,public _bus:BusinessService,private notifierService: NotifierService,public _con:ConsultantService,private router: Router, public menuItems: MenuItems, public horizontalMenuItems : HorizontalMenuItems, public translate: TranslateService ) {
constructor(private matIconRegistry: MatIconRegistry,private domSanitizer: DomSanitizer,public _use:UserService,public _bus:BusinessService,private notifierService: NotifierService,public _con:ConsultantService,private router: Router, public menuItems: MenuItems, public horizontalMenuItems : HorizontalMenuItems, public translate: TranslateService ) {
const browserLang: string = translate.getBrowserLang();
translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');
this.getUser = localStorage.getItem('user_role')
this.formData= new FormData();
this.matIconRegistry.addSvgIcon(
'service',
this.domSanitizer.bypassSecurityTrustResourceUrl('assets/images/service_icon.svg')
);
}
//08/02/2023
@ -119,6 +126,9 @@ users() {
if(this.getUserData.role == 'BIZADMIN'){
this.roleName = 'Business Admin'
}
if(this.getUserData.role == 'SADMIN'){
this.roleName = 'Super Admin'
}
// this.usersLogo = res.data[0].logo;
console.log(this.getUserData)
@ -264,6 +274,7 @@ users() {
state: 'menu',
name: 'MENU',
type: 'sub',
key: '',
icon: 'trending_flat',
children: [
{state: 'menu', name: 'MENU'},

View File

@ -31,10 +31,10 @@ export class ResetPasswordComponent implements OnInit {
this.form = new FormGroup({
password: new FormControl('', [Validators.required,Validators.pattern(
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{8,12}$'
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{16,}$'
)]),
password2: new FormControl('', [Validators.required,Validators.pattern(
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{8,12}$'
'^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_=+-]).{16,}$'
)]),
});
}

View File

@ -16,6 +16,7 @@ export interface Menu {
name: string;
type: string;
icon: string;
key: string;
badge?: BadgeItem[];
children?: ChildrenItems[];
}
@ -25,13 +26,15 @@ const MENUITEMS : Menu[] = [
state: 'home',
name: 'HOME',
type: 'link',
icon: 'home'
icon: 'home',
key: '1'
},
{
state: 'services',
name: 'Services List',
type: 'link',
icon: 'strikethrough_s',
key: '0'
// children: [
// {state: 'services-list', name: 'Services List'},
// // {state: 'add-user-list', name: 'Add Users '},
@ -41,7 +44,8 @@ const MENUITEMS : Menu[] = [
state: 'appointments',
name: 'Appoinments',
type: 'link',
icon: 'developer_board',
icon: 'calendar_today',
key: '1'
// children: [
// {state: 'appoinments-list', name: 'Appoinments List'},
// ]
@ -51,6 +55,7 @@ const MENUITEMS : Menu[] = [
name: 'Business',
type: 'link',
icon: 'markunread_mailbox',
key: '1'
// children: [
// {state: 'business-list', name: 'Business List'},
// // {state: 'add-business-list', name: 'Add Business '},
@ -72,6 +77,7 @@ const MENUITEMS : Menu[] = [
name: 'Users',
type: 'link',
icon: 'person_pin',
key: '1'
// children: [
// {state: 'user-list', name: 'Users List'},
// // {state: 'add-user-list', name: 'Add Users '},
@ -85,6 +91,7 @@ const MENUITEMS : Menu[] = [
name: 'Consultants',
type: 'link',
icon: 'colorize',
key: '1'
// children: [
// {state: 'consultants-list', name: 'Consultants List'},
// ]
@ -93,13 +100,15 @@ const MENUITEMS : Menu[] = [
state: 'consultant-list',
name: 'Consultant List',
type: 'link',
icon: 'settings_system_daydream'
icon: 'settings_system_daydream',
key: '1'
},
{
state: 'customers',
name: 'Booking Details',
type: 'link',
icon: 'event_note',
key: '1'
// children: [
// {state: 'customers-list', name: 'Customers List'},
// ]
@ -121,12 +130,14 @@ const MENUITEMS : Menu[] = [
state: 'consultant-setting',
name: 'Settings',
type: 'link',
icon: 'settings'
icon: 'settings',
key: '1'
}, {
state: 'mail-log',
name: 'Mail',
type: 'link',
icon: 'email',
key: '1'
// children: [
// {state: 'customers-list', name: 'Customers List'},
// ]

View File

@ -0,0 +1,109 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ñëîé_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 3050 3000" style="enable-background:new 0 0 3050 3000;" xml:space="preserve">
<g>
<g>
<g>
<path d="M2737.7,1384.7c-39.6-39.8-93.1-61.9-150-61.9c-5.2,0-10.4,0.2-15.6,0.6c-47.5,3.4-91.9,22.3-127.1,54.3
c-2.4,2.1-4.7,4.3-6.9,6.6l-0.3,0.3l-191,184.5L2102,1708.9c-38.8-34.9-90.6-56.3-146.2-56.3h-491.9c-26.3,0-51.6-4.5-74.5-13
c-7-2.6-13.8-5.6-20.3-8.9c-86.5-44.8-179.6-67.6-276.6-67.6c-47.4,0-94.6,5.5-140.5,16.2c-38.3,8.9-75.7,21.4-111.8,37.1
c-11.2,4.9-22.3,10.2-33.2,15.8c-48.2,24.5-93.4,55-134.4,91.2c-13.8,12.1-27.1,24.8-39.8,38.1c-35.6,37.3-65.4,77.8-89.7,120.7
c-25.2-11.4-52.8-17.6-81.3-17.6c-53.3,0-103.4,20.8-141,58.4L54.9,2188.7c-30.3,30.3-30.3,79.5,0,110l646,646
c30.5,30.3,79.7,30.3,110,0l29.3-29.3l236.5-236.5c53.5-53.5,70.1-129.6,50.3-197.4l17.3-17.2c50.9-51.1,120-79.7,192.2-79.7
h746.1c56.7,0,110.3-25.5,145.9-69.7l248.3-306l95.5-117.7l170.8-210.5c37.1-39.5,57.4-90.7,57.4-145.4
C2800.4,1478.2,2778.1,1424.8,2737.7,1384.7z M1014.2,2553.9c-0.7,3.2-1.5,6.4-2.6,9.5c-1,3.1-2.3,6.2-3.7,9.2
c-2.4,5-5.3,9.8-8.8,14.3c-2.1,2.6-4.3,5.2-6.7,7.7l-236.5,236.5l-587.4-587.4L405,2007.2c11.2-11.2,24.9-18.3,39.2-21.5
c0.7-0.2,1.5-0.4,2.2-0.5c0.6-0.1,1.2-0.2,1.8-0.3c4.4-0.8,8.9-1.2,13.4-1.2c15.3,0,30.7,4.4,44.1,13.2
c4.5,2.9,8.7,6.4,12.6,10.3l474,474c6.9,6.9,12.2,14.6,16,22.9c1.7,3.5,3,7.2,4.1,10.9c2.2,7.4,3.3,15.1,3.3,22.8
C1015.8,2543.2,1015.3,2548.6,1014.2,2553.9z M2653.8,1601.7l-81.6,100.6l-134.4,165.6l-5.5,6.7l-109,134.4l-187.4,230.9
c-13.1,16.2-32.8,25.5-53.6,25.5h-763.6c-92.5,0-181,36.8-246.4,102.2l-7.3,7.2l-5.3,5.2l-422-422c0-0.1,0.1-0.2,0.2-0.3
c3-6,6.2-11.9,9.5-17.7c1.1-1.8,2.2-3.7,3.2-5.5c2.5-4.2,5-8.4,7.7-12.6c1.1-1.8,2.3-3.7,3.4-5.5c3.3-5.2,6.7-10.2,10.3-15.2
c0.2-0.3,0.3-0.5,0.5-0.8c0.2-0.4,0.4-0.7,0.7-1c3.9-5.6,8-11,12.2-16.3c1.3-1.6,2.6-3.2,3.8-4.8c3.1-3.9,6.3-7.7,9.5-11.6
c1.4-1.7,2.8-3.3,4.3-5c3.8-4.4,7.7-8.7,11.6-13c0.7-0.8,1.4-1.6,2.1-2.3c4.7-5,9.5-9.9,14.4-14.6c1.4-1.3,2.8-2.6,4.2-4
c3.7-3.5,7.4-7,11.2-10.4c1.6-1.5,3.2-2.9,4.8-4.3c4.3-3.8,8.6-7.5,13-11.1c0.9-0.8,1.9-1.6,2.8-2.4c5.4-4.3,10.8-8.6,16.4-12.8
c1.3-1,2.7-2,4.1-3c4.3-3.2,8.7-6.3,13.2-9.4c1.7-1.2,3.4-2.3,5.1-3.4c4.7-3.2,9.6-6.3,14.4-9.4c1.1-0.7,2.2-1.3,3.2-2
c6-3.7,12.1-7.3,18.2-10.7c1.2-0.7,2.4-1.3,3.5-1.9c5-2.8,10.1-5.5,15.2-8.1c1.7-0.9,3.4-1.7,5.1-2.6c5.2-2.6,10.5-5.1,15.9-7.5
c1.1-0.5,2.2-1,3.4-1.5c6.5-3,13.2-5.8,19.9-8.4c0.2-0.1,0.4-0.2,0.5-0.3c2.4-0.9,4.7-1.8,7.2-2.7c3.1-1.2,6.3-2.4,9.5-3.5
c4.4-1.6,8.8-3.1,13.3-4.6c2.1-0.7,4.2-1.3,6.3-2c3.2-1,6.4-2,9.7-3l6.7-1.9c3.2-0.9,6.3-1.7,9.5-2.6c2.3-0.6,4.6-1.2,6.9-1.7
c3.1-0.8,6.3-1.5,9.5-2.2c2.3-0.5,4.6-1,6.9-1.5c3.2-0.7,6.4-1.3,9.7-1.9c2.3-0.4,4.6-0.9,6.9-1.3c3.3-0.6,6.7-1.1,10-1.6
c2.2-0.4,4.4-0.7,6.6-1c0.9-0.1,1.8-0.3,2.8-0.4c2.4-0.3,4.8-0.5,7.2-0.9c2.4-0.3,4.7-0.6,7.1-0.8c3.4-0.4,6.7-0.7,10.1-0.9
c2.4-0.2,4.7-0.4,7-0.6c3.7-0.3,7.3-0.4,11-0.6c2.1-0.1,4.1-0.2,6.1-0.3c5.3-0.2,10.7-0.3,16-0.3c0.4,0,0.8,0,1.2,0
c74.2,0,149.8,16.9,222,54.3c5.6,2.9,11.3,5.6,17,8.1c0.3,0.1,0.5,0.2,0.8,0.4c0.1,0,0.2,0.1,0.3,0.1c12,5.2,24.3,9.6,36.8,13.2
c31.3,9.1,64.1,13.4,96.9,13.4h489.9c2.6,0,5.2,0.1,7.7,0.4c0.7,0,1.5,0.1,2.2,0.2c2.6,0.3,5.2,0.6,7.7,1.1c0.2,0,0.4,0,0.5,0.1
c2.5,0.4,4.9,1,7.3,1.7c0.7,0.2,1.4,0.4,2.1,0.6c2.5,0.7,5,1.5,7.3,2.4c0.2,0,0.4,0.1,0.5,0.2c2.3,0.9,4.5,1.8,6.7,2.9
c0.6,0.3,1.2,0.6,1.8,0.9c2.3,1.1,4.6,2.3,6.8,3.6c0.2,0.1,0.4,0.2,0.5,0.3c2.1,1.3,4.1,2.6,6,3.9c0.5,0.4,1.1,0.8,1.7,1.1
c2.1,1.5,4.1,3,6,4.7c0.2,0.1,0.3,0.3,0.5,0.4c1.8,1.5,3.5,3.1,5.1,4.8c0.5,0.5,1,1,1.5,1.5c1.7,1.8,3.4,3.6,5,5.6
c0.2,0.3,0.4,0.5,0.6,0.8c0.9,1.2,1.9,2.4,2.8,3.7c0.4,0.5,0.8,1.1,1.2,1.7c0.4,0.6,0.8,1.2,1.2,1.8c1.4,2.1,2.7,4.3,3.9,6.5
c0.1,0.2,0.2,0.4,0.3,0.6c1.2,2.1,2.2,4.3,3.1,6.5c0.3,0.6,0.5,1.2,0.7,1.7c1,2.4,1.9,4.9,2.7,7.4c0.8,2.5,1.4,5.1,2,7.7
c0.1,0.6,0.2,1.2,0.4,1.8c0.5,2.7,0.9,5.4,1.2,8.1c0.6,6.3,0.6,12.5,0,18.5c-2.1,22.4-12.1,42.4-27.2,57.3
c-16.9,16.7-40.2,27.1-65.9,27.1h-476.7c-14.4,0-27.6,5.1-37.9,13.6c-10.9,9-18.5,21.8-20.9,36.4c-0.5,3.1-0.9,6.3-0.9,9.6
c0,2.2,0.2,4.4,0.4,6.6c0.1,0.7,0.2,1.3,0.3,2c0.2,1.5,0.4,3,0.8,4.4c0.2,0.8,0.4,1.5,0.6,2.3c0.4,1.3,0.7,2.6,1.2,3.9
c0.3,0.8,0.5,1.5,0.8,2.2c0.5,1.3,1,2.5,1.6,3.7c0.4,0.7,0.7,1.4,1,2.1c0.6,1.3,1.3,2.4,2.1,3.6c0.4,0.6,0.7,1.2,1.1,1.7
c0.9,1.4,1.8,2.7,2.8,3.9c0.3,0.4,0.5,0.8,0.8,1.1c1.3,1.7,2.7,3.2,4.3,4.7c0,0.1,0.1,0.1,0.2,0.2c1.4,1.4,2.9,2.7,4.4,3.9
c0.9,0.8,1.9,1.5,2.9,2.2c0.4,0.3,0.9,0.6,1.3,0.9c1.4,0.9,3,1.9,4.5,2.7c0.5,0.3,1,0.5,1.6,0.8c1.1,0.6,2.1,1.1,3.3,1.6
c0.7,0.3,1.3,0.5,2,0.8c1,0.4,2.1,0.8,3.1,1.2c0.7,0.2,1.4,0.4,2.1,0.7c1.1,0.3,2.2,0.6,3.3,0.9c0.7,0.1,1.4,0.3,2.1,0.4
c1.2,0.2,2.4,0.4,3.6,0.5c0.6,0.1,1.3,0.2,1.9,0.3c1.8,0.2,3.6,0.3,5.5,0.3h473.2c7,0,14.1-0.3,21.1-0.9
c15-1.2,29.8-3.8,44.1-8.2c6.4-2,12.6-4.2,18.6-6.7c0.6-0.2,1.2-0.5,1.8-0.8c2.4-1,4.7-2,7.1-3.1c0.9-0.4,1.7-0.8,2.5-1.2
c2.1-1,4.1-1.9,6.1-3c0.9-0.5,1.9-1,2.8-1.6c1.8-0.9,3.7-1.9,5.5-3c1-0.6,2-1.2,3-1.8c1.7-1,3.4-2,5-3c1.1-0.7,2.1-1.3,3.1-2.1
c1.6-1,3.1-2,4.6-3c1.1-0.8,2.1-1.5,3.2-2.3c1.4-1,2.9-2.1,4.3-3.1c1.1-0.8,2.1-1.7,3.1-2.5c1.3-1.1,2.7-2.1,4-3.2
c1-0.9,2.1-1.8,3.1-2.7c1.3-1.1,2.6-2.1,3.8-3.3c1-0.9,2.1-1.9,3-2.9c1.2-1.1,2.4-2.2,3.5-3.3c1-1,2-2,3-3
c1.1-1.2,2.2-2.3,3.3-3.4c0.4-0.4,0.7-0.8,1.1-1.2c0.6-0.7,1.2-1.3,1.8-2c1-1.2,2.1-2.3,3.1-3.5c0.9-1.1,1.8-2.2,2.8-3.4
c0.9-1.2,1.9-2.3,2.9-3.5c0.9-1.2,1.8-2.3,2.6-3.5c0.9-1.2,1.8-2.4,2.7-3.6c0.9-1.2,1.7-2.5,2.6-3.7c0.8-1.2,1.7-2.4,2.5-3.7
c0.9-1.3,1.6-2.5,2.4-3.8c0.8-1.2,1.5-2.5,2.3-3.7c0.8-1.3,1.5-2.6,2.3-3.9c0.7-1.2,1.4-2.5,2.1-3.7c0.7-1.3,1.4-2.7,2.1-4.1
c0.6-1.3,1.3-2.5,1.9-3.8c0.7-1.4,1.3-2.8,2-4.2c0.6-1.3,1.2-2.6,1.7-3.9c0.6-1.4,1.2-2.8,1.8-4.3c0.5-1.3,1.1-2.6,1.6-3.9
c0.6-1.4,1.1-2.9,1.7-4.3c0.4-1.3,0.9-2.6,1.4-3.9c0.5-1.5,1-3,1.5-4.4c0.4-1.3,0.8-2.6,1.2-3.9c0.4-1.5,0.9-3,1.3-4.6
c0.4-1.3,0.7-2.6,1.1-3.9c0.4-1.5,0.7-3.1,1.1-4.6c0.3-1.3,0.6-2.7,0.9-4c0.3-1.5,0.6-3.1,0.9-4.6c0.3-1.3,0.5-2.7,0.8-4.1
c0.3-1.6,0.5-3.1,0.7-4.7c0.2-1.4,0.4-2.7,0.5-4.1c0.2-1.6,0.4-3.1,0.5-4.7c0.1-1.4,0.3-2.8,0.4-4.2c0.1-1.6,0.2-3.1,0.3-4.7
c0.1-1.4,0.2-2.8,0.2-4.2c0.1-1.6,0.1-3.1,0.1-4.7c0-1.4,0-2.8,0-4.3c0-1.6,0-3.1,0-4.7c0-1.4-0.1-2.8-0.1-4.3
c-0.1-1.6-0.2-3.1-0.3-4.7c-0.1-2.2-0.3-4.3-0.5-6.4c-0.4-4.1-0.9-8.2-1.6-12.1c-1.1-6.7-2.5-13.3-4.2-19.9l165.8-160.1
l106.2-102.5l83.7-80.9c8.6-8.5,18.4-15.1,28.8-19.6c0,0,0.1,0,0.2-0.1c1.7-0.7,3.4-1.4,5.1-2.1c1.8-0.6,3.6-1.2,5.4-1.7
c8.7-2.6,17.7-3.9,26.7-3.9c0.7,0,1.5,0.1,2.2,0.1c5.2,0.1,10.4,0.6,15.5,1.6c0.4,0.1,0.9,0.2,1.3,0.3
c12.8,2.7,25.1,8.2,36.1,16.2c3.8,2.8,7.4,5.7,10.8,9.1c18.4,18.2,27.4,42.2,27.4,66.1
C2681.2,1559.4,2672.2,1583.4,2653.8,1601.7z"/>
<ellipse transform="matrix(0.7071 -0.7071 0.7071 0.7071 -1416.0549 976.0701)" cx="470.2" cy="2197.4" rx="68.1" ry="68.1"/>
</g>
</g>
<g>
<g>
<circle cx="2513.7" cy="291.1" r="258.4"/>
<circle cx="918.9" cy="291.1" r="258.4"/>
</g>
<g>
<g>
<path d="M2654.9,608.8h-282.4c-88.6,0-170.1,32.2-233.3,85.5c-37.2,31.4-34.1,89.5,6.3,116.6c26.6,17.8,51.6,38.3,74.7,61.5
c56,56,96.7,123,120.1,196c9.7,30.1,37.7,50.5,69.3,50.5h460.9c80.9,0,147.2-66.2,147.2-147.2l0,0
C3017.8,772.1,2854.5,608.8,2654.9,608.8z"/>
<path d="M1287.1,810.8c40.5-27.1,43.6-85.2,6.3-116.6c-63.2-53.3-144.7-85.5-233.3-85.5H777.7c-199.6,0-362.9,163.3-362.9,362.9
l0,0c0,80.9,66.2,147.2,147.2,147.2h460.9c31.6,0,59.7-20.4,69.3-50.5c23.4-73,64.1-140,120.1-196
C1235.5,849.2,1260.5,828.6,1287.1,810.8z"/>
<path d="M1875.5,808h-318.4c-225,0-409.1,184.1-409.1,409.1c0,91.2,74.7,165.9,165.9,165.9h804.7c91.2,0,165.9-74.7,165.9-165.9
C2284.6,992.1,2100.5,808,1875.5,808z"/>
</g>
<circle cx="1716.3" cy="449.9" r="291.3"/>
</g>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -9,14 +9,16 @@ $hover-icon-color:#2393db;
.radius-round {
border-radius: $border-radius-base;
}
// .profilepic {
// position: relative;
// width: 125px;
// height: 125px;
// border-radius: 50%;
// overflow: hidden;
// background-color: #111;
// }
.profilepic {
position: relative;
width: 100px;
height: 100px;
border-radius: 50%;
overflow: hidden;
background-color: #111;
margin-left: 55px;
cursor: pointer;
}
.profilepic:hover .profilepic__content {
opacity: 1;
@ -34,7 +36,7 @@ $hover-icon-color:#2393db;
.profilepic__content {
position: absolute;
top: 0;
top: 65px;
right: 0;
bottom: 0;
left: 0;

View File

@ -10,7 +10,7 @@ export const environment = {
// apiEndpoint:'http://192.168.1.19:8080/api/',
// apiEndpoint:'https://api.venbait.in/api/',
// apiEndpoint:'http://venbainfotech.com:5000/api/',
// apiEndpoint:'http://192.168.1.17:8080/api/',
// apiEndpoint:'http://192.168.1.10:8080/api/',
apiEndpoint:'https://api.venbait.in/api/',