diff --git a/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.html b/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.html index 9fe4215..fe3be01 100644 --- a/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.html +++ b/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.html @@ -37,7 +37,7 @@ Appointment Time -
{{element.appoinmentSlots }}
+
{{element.appoinmentSlots }}
diff --git a/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.ts b/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.ts index 2c87f65..51c5666 100644 --- a/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.ts +++ b/ng-seed/src/app/appoinment/appoinments/appoinments-list/appoinments-list.component.ts @@ -63,8 +63,18 @@ export class AppoinmentsListComponent implements OnInit { this._app.getAppoinmentsListDetails().subscribe(res => { if (res.status == 200) { this.appoinmentsList = res.data; + let user_role = localStorage.getItem('user_role'); + if(user_role == 'PRACTITIONER'){ + let id = localStorage.getItem('user_id') + console.log(id) + this.appoinmentsList console.log(this.appoinmentsList) - + + let filter = this.appoinmentsList.filter(arr=>{return arr["ServicesMapDetail.userId"] + == id}) + console.log(filter) + this.appoinmentsList = filter + } } else{ diff --git a/ng-seed/src/app/appoinment/business/business-list/business-list.component.ts b/ng-seed/src/app/appoinment/business/business-list/business-list.component.ts index a2bb14f..8b93e29 100644 --- a/ng-seed/src/app/appoinment/business/business-list/business-list.component.ts +++ b/ng-seed/src/app/appoinment/business/business-list/business-list.component.ts @@ -160,7 +160,19 @@ export class BusinessListComponent implements OnInit { // var d = this.customersList.length+1 console.log(formValue[0]) - this._bus.addFormDetails(formValue[0]).subscribe(res => { + + const formData:FormData = new FormData(); + formData.append('image', formValue[0].logo); + // formData.append('busId', JSON.stringify(formValue[0].busName)); + // formData.append('busName', JSON.stringify(formValue[0].busName)); + + // formData.append('address', JSON.stringify(formValue[0].address)); + // formData.append('state', JSON.stringify(formValue[0].state)); + // formData.append('city', JSON.stringify(formValue[0].city)); + // formData.append('email', JSON.stringify(formValue[0].email)); + // formData.append('contactNo', JSON.stringify(formValue[0].contactNo)); +console.log(formData) + this._bus.addFormDetails(formData).subscribe(res => { if (res.status == 200) { // this.customersList = res.data; this.getBusinessList() diff --git a/ng-seed/src/app/appoinment/business/business-service/business.service.ts b/ng-seed/src/app/appoinment/business/business-service/business.service.ts index 77d638f..03a2154 100644 --- a/ng-seed/src/app/appoinment/business/business-service/business.service.ts +++ b/ng-seed/src/app/appoinment/business/business-service/business.service.ts @@ -19,7 +19,7 @@ export class BusinessService { ) } - addFormDetails(addParams): Observable { + addFormDetails(addParams:any): Observable { return this._http.post(this.apiUrl + 'createBusinessDetails', addParams) // .pipe( // catchError(this.handleError('role', [])) diff --git a/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.html b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.html new file mode 100644 index 0000000..4bcf0ee --- /dev/null +++ b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.html @@ -0,0 +1,28 @@ + +
+ Assign Service + +
+
+ +
+ + Duration + + Duration is required + + + Fees + + Fees is required + +
+
+
+ + +
+
+ \ No newline at end of file diff --git a/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.scss b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.scss new file mode 100644 index 0000000..ad079c5 --- /dev/null +++ b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.scss @@ -0,0 +1,62 @@ +// ::ng-deep .cdk-overlay-pane{ +// width: 60%!important; +// } +.mat-pane{ + width: 20rem; +} +.button{ + // float: right; + margin-bottom: 1rem; + background-color: #ffff; + margin-top: -1rem; + // margin-left: 6rem; + float: right; +} +::ng-deep .mat-card.settings-panel { + position: inherit; + bottom: 0px; + right: 0px; + width: 350px; + z-index: 9; + top: 58px; +} + +::ng-deep body .mat-card { + box-shadow:none!important; +} + +// @include media-breakpoint-down(lg) { +// padding-top: 150px; +// } +// @include media-breakpoint-down(md) { +// padding-top: 100px; +// } +// @include media-breakpoint-down(sm) { +// padding-top: 100px; +// } + + +// @media only screen and (max-width: 600px) { +// .cdk-overlay-pane{ +// width: 90%!important; +// } +// } + +@media (max-width: 959px){ + .cdk-overlay-pane{ + width: 90%!important; + } +} +::ng-deep .mat-dialog-content { + max-height: 170vh !important; + overflow: hidden!important; +} +::ng-deep .mat-dialog-container{ + overflow: hidden!important; +} +.scrollHV { + height: calc(100vh - 150px); +} +:ng-deep .ng-scroll-viewport-wrapper{ + right: -25px !important; +} \ No newline at end of file diff --git a/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.spec.ts b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.spec.ts new file mode 100644 index 0000000..4dc5688 --- /dev/null +++ b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AssignServiceComponent } from './assign-service.component'; + +describe('AssignServiceComponent', () => { + let component: AssignServiceComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AssignServiceComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AssignServiceComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.ts b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.ts new file mode 100644 index 0000000..0eccf3f --- /dev/null +++ b/ng-seed/src/app/appoinment/consultant-setting/assign-service/assign-service.component.ts @@ -0,0 +1,55 @@ +import { Component, Inject, OnInit, Optional } from '@angular/core'; +import { FormControl, FormGroup, Validators } from '@angular/forms'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; + +@Component({ + selector: 'app-assign-service', + templateUrl: './assign-service.component.html', + styleUrls: ['./assign-service.component.scss'] +}) +export class AssignServiceComponent implements OnInit { + form: FormGroup; + local_data: any; + + constructor(public dialogRef: MatDialogRef,@Optional() @Inject(MAT_DIALOG_DATA) public data) { + console.log(data) + this.local_data = data + this.local_data.duration = this.local_data.durationNew + + } + + ngOnInit(): void { + this.form = new FormGroup({ + duration: new FormControl('', [Validators.required]), + fees: new FormControl('', [Validators.required]) + }); + + this.form.patchValue(this.local_data) + } + + public myError = (controlName: string, errorName: string) =>{ + return this.form.controls[controlName].hasError(errorName); + } + + closeDialog(){ + this.dialogRef.close(); + } + + submit(){ + console.log(this.form.value) + let user_id = localStorage.getItem('user_id') + let details:any = { + durationNew: this.form.value.duration, + fees:this.form.value.fees, + busId:this.local_data.busId, + userId: user_id, + serviceId:this.local_data.serviceId + } + if(this.local_data.hasOwnProperty('id')){ + details.id =this.local_data.id + } + + this.dialogRef.close(details); + } + +} diff --git a/ng-seed/src/app/appoinment/consultant-setting/consultant-service/consultant.service.ts b/ng-seed/src/app/appoinment/consultant-setting/consultant-service/consultant.service.ts index d14ce17..31f3c68 100644 --- a/ng-seed/src/app/appoinment/consultant-setting/consultant-service/consultant.service.ts +++ b/ng-seed/src/app/appoinment/consultant-setting/consultant-service/consultant.service.ts @@ -13,18 +13,23 @@ export class ConsultantService { constructor(private _http: HttpClient) { } getUsersListDetails(id): Observable { - console.log('IN') return this._http.post(this.apiUrl + 'getPractitionerInfo', {id:id}) - // .pipe( - // catchError(this.handleError('role', [])) - // ) } + getServicesListDetails(userId,busId): Observable { - console.log('IN') return this._http.post(this.apiUrl + 'getServicesMapDetails', {busId:busId, userId:userId}) - // .pipe( - // catchError(this.handleError('role', [])) - // ) + } + + getAssignedDetails(busId:any): Observable{ + return this._http.post(this.apiUrl + 'getServicesDetails', {busId:busId}) + } + + getServiceCheckedDetails(params): Observable{ + return this._http.post(this.apiUrl + 'AlterServicesMap', params) + } + + createDurationFeesDetails(params): Observable{ + return this._http.post(this.apiUrl + 'CreateDuration', params) } handleError(arg0: string, arg1: undefined[]): (err: any, caught: Observable) => import("rxjs").ObservableInput { diff --git a/ng-seed/src/app/appoinment/consultant-setting/consultant-setting.module.ts b/ng-seed/src/app/appoinment/consultant-setting/consultant-setting.module.ts index 66e4dd7..d1899bf 100644 --- a/ng-seed/src/app/appoinment/consultant-setting/consultant-setting.module.ts +++ b/ng-seed/src/app/appoinment/consultant-setting/consultant-setting.module.ts @@ -7,19 +7,25 @@ import { DemoMaterialModule } from 'app/shared/demo.module'; import { NgScrollbarModule } from 'ngx-scrollbar'; import { EditWorkingHoursComponent } from './edit-working-hours/edit-working-hours.component'; import { ExtraWorkingHoursComponent } from './extra-working-hours/extra-working-hours.component'; +import { AssignServiceComponent } from './assign-service/assign-service.component'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatFormFieldModule } from '@angular/material/form-field'; @NgModule({ declarations: [ ConsultantSettingComponent, EditWorkingHoursComponent, - ExtraWorkingHoursComponent + ExtraWorkingHoursComponent, + AssignServiceComponent ], imports: [ CommonModule, ConsultantSettingRoutingModule, DemoMaterialModule, - NgScrollbarModule + NgScrollbarModule, + MatSidenavModule, + MatFormFieldModule, ] }) export class ConsultantSettingModule { } diff --git a/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.html b/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.html index b1472d9..a45b4a4 100644 --- a/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.html +++ b/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.html @@ -8,7 +8,7 @@ --> - + @@ -19,6 +19,10 @@ Profile + + + +
@@ -26,6 +30,7 @@
@@ -41,32 +46,67 @@
- {{practitionerdetails.dob}} + {{practitionerdetails.dob}} + + Date of Birth + + +
- {{practitionerdetails.exp}} + {{practitionerdetails.exp}} + + Experience + + +
-
+ + +
+ + + Online Doctor Consultation - Allergist and Clinical Immunologist +
{{details.servicesName}}
+ +
+ +
+
+ - role is required - --> + +
- - - - {{details.servicesName}} - {{details.duration}} Minutes - + +
+
+ +
+
+
{{details.servicesName}}
+
{{servicesList_data[i].duration.length>0 ? servicesList_data[i].duration[0].durationNew : details.duration}} Mins | {{servicesList_data[i].duration.length>0 ? servicesList_data[i].duration[0].fees : 0}}
+
+ Customize the price and duration of a service.
+
+
+ Active +
+
+ +
diff --git a/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.scss b/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.scss index 08e59bd..4c49255 100644 --- a/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.scss +++ b/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.scss @@ -343,21 +343,28 @@ margin-bottom: 10rem; margin-left: 1rem; } .service-info{ - line-height: 3rem!important; + // line-height: 3rem!important; font-size: 14px!important; font-weight: 500!important; + color: #2f2c2c; +} +.service-info2{ + // line-height: 3rem!important; + font-size: 12px!important; + font-weight: 500!important; color: #5F5F5F; } .info{ font-size: 12px!important; font-weight: 500; color: rgba(2,71,91,.6); - padding: 0 0 10px; + // padding: 0 0 10px; max-height: 38px; display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; + cursor: pointer; } ::ng-deep .mat-card .mat-card-title:nth-child(2) { margin-top: -33px!important; @@ -382,3 +389,22 @@ margin-bottom: 10rem; // color: #4C4C4C; // text-align: center; // } +.assignService{ + .scrollHV { + height: calc(100vh - 461px) !important; + } +} +::ng-deep .mat-select-panel .mat-option{ + height: 5em !important; +} +// css example +.indianSymbol { + content: "\20B9"; +} + +.p-1{ + padding: 1rem !important; + .flexCard{ + display: contents !important; + } +} diff --git a/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.ts b/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.ts index 91f3c65..877c73a 100644 --- a/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.ts +++ b/ng-seed/src/app/appoinment/consultant-setting/consultant-setting/consultant-setting.component.ts @@ -5,6 +5,7 @@ import { MatDialog } from '@angular/material/dialog'; import { MatTableDataSource } from '@angular/material/table'; import { ApiServiceService } from 'app/appoinment/service-list-details/service-api-services/api-service.service'; import { environment } from 'environments/environment'; +import { AssignServiceComponent } from '../assign-service/assign-service.component'; import { ConsultantService } from '../consultant-service/consultant.service'; import { EditWorkingHoursComponent } from '../edit-working-hours/edit-working-hours.component'; import { ExtraWorkingHoursComponent } from '../extra-working-hours/extra-working-hours.component'; @@ -15,6 +16,7 @@ import { ExtraWorkingHoursComponent } from '../extra-working-hours/extra-working styleUrls: ['./consultant-setting.component.scss'] }) export class ConsultantSettingComponent implements OnInit { + assignService:any = [] registerForm: FormGroup; submitted = false; selected = 'Assign New Services'; @@ -27,12 +29,15 @@ export class ConsultantSettingComponent implements OnInit { status: 'Active', }, ]; - + isEditable:any = false; public usersList:any = new MatTableDataSource(); public servicesList:any = new MatTableDataSource(); practitionerdetails: any; servicesList_array: any = []; apiUrl:any; + serviceCheckedData: number; + checkedArray: any[]; + servicesList_data: any=[]; constructor(private formBuilder: FormBuilder, public dialog: MatDialog, public _con:ConsultantService, private fb: FormBuilder, public _api:ConsultantService,private locationStrategy: LocationStrategy) {} @@ -53,92 +58,33 @@ export class ConsultantSettingComponent implements OnInit { } -getUsersList() { - //this._pd.getTabStatusPdDetails(this.tabStatus) - let id = localStorage.getItem('user_id') - console.log(id) - this._con.getUsersListDetails(id).subscribe(res => { - if (res.status == 200) { - this.usersList = res.data[0]; - console.log(this.usersList) - this.practitionerdetails = this.usersList['practitionerInfos'][0] - console.log(this.practitionerdetails) - this.apiUrl = 'http://localhost:4200/customer/business/'+this.usersList.randStr - this.getServicesList(this.usersList.id,this.usersList.busId) - // this.dataSource = res.data.length; - // console.log(this.dataSource) - // this.dataSource.data = this.usersList; - // console.log(this.dataSource.data) - // this.recordStatus=false; - } - else{ - // this.usersList=[]; - // this.dataSource = null; - // this.recordStatus=true; - } - } - ,error => { - // this.errorMessage.push(error); - // this.notifier.notify('error', 'Something Went Wrong Try Again.! \t\"' + (error.error_type == 2 ? error.error_status + ' ( ' + error.error_text + ' ) ' : ' ( ' + error.error_text + ' ) ') +'\" Error Occur.!'); - // alert(error.html_format); - }); -} -getServicesList(id,busId) { - //this._pd.getTabStatusPdDetails(this.tabStatus) - this._api.getServicesListDetails(id,busId).subscribe(res => { - if (res.status == 200) { - this.servicesList = res.data; - res['data'].forEach(element => { - // tmp.push(element.service) - element.service.forEach(e => { - this.servicesList_array.push(e) - }); - }); - console.log(this.servicesList_array) - // console.log(this.servicesList) - // this.dataSource = res.data.length; - // console.log(this.dataSource) - // this.dataSource.data = this.servicesList; - // console.log(this.dataSource.data) - // this.recordStatus=false; - } - else{ - // this.servicesList=[]; - // this.dataSource = null; - // this.recordStatus=true; - } - } - ,error => { - // this.errorMessage.push(error); - // this.notifier.notify('error', 'Something Went Wrong Try Again.! \t\"' + (error.error_type == 2 ? error.error_status + ' ( ' + error.error_text + ' ) ' : ' ( ' + error.error_text + ' ) ') +'\" Error Occur.!'); - // alert(error.html_format); - }); -} -get f() { - return this.registerForm.controls; -} -onSubmit() { - this.submitted = true; - if (this.registerForm.invalid) { - return; + public myError = (controlName: string, errorName: string) =>{ + return this.registerForm.controls[controlName].hasError(errorName); + } + + tabClick(tab) { + console.log(tab.index); + if(tab.index == '2'){ + this.getServicesList(this.usersList.id,this.usersList.busId) + // this.getAssignedList(this.usersList.busId) + } + + } + +edit_table(param){ + + + + if (param == true) { + this.isEditable = false; + } else { + console.log('status', ); + this.isEditable = true + // localStorage.setItem('row_item',JSON.stringify(tableArr)) + console.log( this.isEditable); + // this.isEditable = status; + // this.isEditable_month = tableArr.months; } - console.log(JSON.stringify(this.registerForm.value, null, 2)); -} -openDialog(action,obj) { - obj.action = action; - const dialogRef = this.dialog.open(EditWorkingHoursComponent, { - width: '48%', - height: '100%', - // maxWidth: '38vw', - position: { right: '0' }, - data:obj - }); - // dialogRef.afterClosed().subscribe(result => { - // if(result != undefined){ - // console.log(result) - // this.formAddUpdateAndDelete(result,result.data) - // } - // }); } workingDialog(action,obj) { @@ -157,6 +103,165 @@ workingDialog(action,obj) { // } // }); } + getUsersList() { + //this._pd.getTabStatusPdDetails(this.tabStatus) + let id = localStorage.getItem('user_id') + console.log(id) + this._con.getUsersListDetails(id).subscribe(res => { + if (res.status == 200) { + this.usersList = res.data[0]; + console.log(this.usersList) + this.practitionerdetails = this.usersList['practitionerInfos'][0] + console.log(this.practitionerdetails) + this.apiUrl = 'http://localhost:4200/customer/business/'+this.usersList.randStr + + } + } ); + } + getAssignedList(busId) { + this._api.getAssignedDetails(busId).subscribe(res => { + console.log(res) + if (res.status == 200) { + this.servicesList = res.data; + } + } ); + } + + getServicesList(id,busId) { + this.servicesList_array = [] + //this._pd.getTabStatusPdDetails(this.tabStatus) + this._api.getServicesListDetails(id,busId).subscribe(res => { + if (res.status == 200) { + this.servicesList_data = res.data; + res['data'].forEach(element => { + // tmp.push(element.service) + element.service.forEach(e => { + console.log(e) + this.servicesList_array.push(e) + this.assignService.push(e.servicesName) + }); + }); + console.log(this.servicesList_array) + + this.getAssignedList(this.usersList.busId) + } + } ); + // this.assignService = this.checkedArray + } + + get f() { + return this.registerForm.controls; + } + + onSubmit() { + this.submitted = true; + if (this.registerForm.invalid) { + return; + } + console.log(JSON.stringify(this.registerForm.value, null, 2)); + } + + openDialog(action,obj) { + obj.action = action; + const dialogRef = this.dialog.open(EditWorkingHoursComponent, { + width: '48%', + height: '100%', + // maxWidth: '38vw', + position: { right: '0' }, + data:obj + }); + // dialogRef.afterClosed().subscribe(result => { + // if(result != undefined){ + // console.log(result) + // this.formAddUpdateAndDelete(result,result.data) + // } + // }); + } + + workingDialog(action,obj) { + obj.action = action; + const dialogRef = this.dialog.open(ExtraWorkingHoursComponent, { + width: '48%', + height: '100%', + // maxWidth: '38vw', + position: { right: '0' }, + data:obj + }); + // dialogRef.afterClosed().subscribe(result => { + // if(result != undefined){ + // console.log(result) + // this.formAddUpdateAndDelete(result,result.data) + // } + // }); + } + + asignService(param,index){ + console.log(param) + console.log(index,this.servicesList_data) + if(this.servicesList_data[index].duration.length>0){ + param = this.servicesList_data[index].duration[0] + } + const dialogRef = this.dialog.open(AssignServiceComponent, { + width: '30%', + height: '100%', + // maxWidth: '38vw', + position: { right: '0' }, + data:param + }); + dialogRef.afterClosed().subscribe(result => { + console.log(result) + if(result instanceof Object){ + this.createDurationFees(result) + } + }); + } + + createDurationFees(param){ + this._api.createDurationFeesDetails(param).subscribe(res => { + if (res.status == 200) { + console.log(res) + // this.checkedList = res.data; + } + } ); + } + + getValues(event: { + isUserInput: any; + source: { value: any; selected: any }; + },details) { + console.log(event,details,this.assignService) + if (event.isUserInput) { + if (event.source.selected === true) { + console.log('1',event.source.value) + this.serviceCheckedData = 1 + this.getCheckedService(details) + } else { + console.log('2',event.source.value) + this.serviceCheckedData = 0 + this.getCheckedService(details) + } + } + + } + + // AlterServicesMap + // methoad post + // param = {serviceId:"",userId:"",busId:"",active:1} + getCheckedService(params){ + console.log(params) + let userid = localStorage.getItem('user_id') + let data = {serviceId:params.serviceId,userId:userid,busId:params.busId,active:this.serviceCheckedData} + console.log(data) + this._api.getServiceCheckedDetails(data).subscribe(res => { + if (res.status == 200) { + console.log(res) + // this.checkedList = res.data; + this.getServicesList(this.usersList.id,this.usersList.busId) + } + } ); + } + + } diff --git a/ng-seed/src/app/appoinment/consultant-setting/edit-working-hours/edit-working-hours.component.html b/ng-seed/src/app/appoinment/consultant-setting/edit-working-hours/edit-working-hours.component.html index 6a77c47..85f6709 100644 --- a/ng-seed/src/app/appoinment/consultant-setting/edit-working-hours/edit-working-hours.component.html +++ b/ng-seed/src/app/appoinment/consultant-setting/edit-working-hours/edit-working-hours.component.html @@ -15,10 +15,10 @@
- + - +
@@ -81,575 +81,439 @@ -->
-
-
-
-
-
-
- - - - -
- - - - {{ filterType }} - - - - - - - {{ apiType }} - - - - - add - - - delete - -
-
-
-
-
-
-
-
-
-
-
- - - - -
- - - - {{ filterType }} - - - - - - - {{ apiType }} - - - - - add - - - delete - -
-
-
- -
-
-
-
-
-
-
-
- - - - -
- - - - {{ filterType }} - - - - - - - {{ apiType }} - - - - - add - - - delete - -
-
-
-
-
-
-
-
-
-
-
- - - - -
- - - - {{ filterType }} - - - - - - - {{ apiType }} - - - - - add - - - delete - -
-
-
-
-
-
-
-
-
-
-
- - - - -
- - - - {{ filterType }} - - - - - - - {{ apiType }} - - - - - add - - - delete - -
-
-
-
-
-
-
-
-
-
-
- - - - -
- - - - {{ filterType }} - - - - - - - {{ apiType }} - - - - - add - - - delete - -
-
-
-
-
- + + add + + + delete +
- + - -
-
Apply To All
- - -
-
- - - - -
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
-
-
- + -
-
Apply To All
-
-
-
-
- - - -
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
+ + +
+ +
+
+
+
+
+
+ + + +
-
- + - + + + + {{ filterType }} + + + + + + + {{ apiType }} + + + + + + + add + + + delete + +
-
Apply To All
-
-
-
-
- - - -
-
-
-
-
- -
-
-
- -
-
- -
-
-
- + + +
+ +
+
+
+
+
+
+ + + +
-
- + - + + + + {{ filterType }} + + + + + + + {{ apiType }} + + + + + + + add + + + delete + +
-
Apply To All
-
-
-
-
- - - -
-
-
-
-
- -
-
-
- -
-
- -
-
-
- + + +
+ +
+
+
+
+
+
+ + + +
-
- + - + + + + {{ filterType }} + + + + + + + {{ apiType }} + + + + + + + add + + + delete + +
-
Apply To All
-
-
-
-
- - - -
-
-
-
-
- -
-
-
- -
-
- -
-
-
- + + +
+ +
+
+
+
+
+
+ + + +
-
- + - + + + + {{ filterType }} + + + + + + + {{ apiType }} + + + + + + + add + + + delete + +
-
Apply To All
-
-
-
-
- - - -
-
-
-
-
- -
-
-
- -
-
- -
-
-
- + + +
+ +
+
+
+
+
+
+ + + +
-
- + - + + + + {{ filterType }} + + + + + + + {{ apiType }} + + + + + + + add + + + delete + +
-
Apply To All
-
-
--> - +
+ + +
+ + \ No newline at end of file +