File
    Implements
    
    
    
    Index
    
        
                
                    
                        Properties
                     | 
                
                
                    | 
                        
                     | 
                
                
                    
                        Methods
                     | 
                
                
                    | 
                        
                     | 
                
                
                    
                        Inputs
                     | 
                
                
                    | 
                        
                     | 
                
        
    
    
    
    
    
    
        Methods
    
    
        
            
                | 
                    
                    
                        dismissModal
                        
                    
                 | 
            
            
                
dismissModal(data?)
                 | 
            
            
                | 
                    
                 | 
            
            
                | 
                    
                     
                     
                    
                    
                        
                     
                 | 
            
        
    
    
        
            
                | 
                    
                    
                        getEntityTypes
                        
                    
                 | 
            
            
                
getEntityTypes()
                 | 
            
            
                | 
                    
                 | 
            
            
                | 
                    
                 | 
            
        
    
    
    
    
        
            
                | 
                    
                    
                        search
                        
                    
                 | 
            
            
                
search(searchText)
                 | 
            
            
                | 
                    
                 | 
            
            
                
                    
                        Parameters :
                        
                        
                            
                                
                                    | Name | 
                                    Optional | 
                                 
                            
                            
                                
                                    | searchText | 
                                    
                                        No
                                     | 
                                 
                            
                         
                     
                    
                     
                    
                    
                        
                     
                 | 
            
        
    
    
        
            
                | 
                    
                    
                        Async
                        searchProgramByEntity
                        
                    
                 | 
            
            
                
                    
                    searchProgramByEntity(searchText: any)
                 | 
            
            
                | 
                    
                 | 
            
            
                
                    
                        Parameters :
                        
                        
                            
                                
                                    | Name | 
                                    Type | 
                                    Optional | 
                                 
                            
                            
                                
                                    | searchText | 
                                    
                                                any
                                     | 
                                    
                                        No
                                     | 
                                 
                            
                         
                     
                    
                     
                    
                    
                        
                     
                 | 
            
        
    
    
        
            
                | 
                    
                    
                        Async
                        serachEntity
                        
                    
                 | 
            
            
                
                    
                    serachEntity(searchText: any)
                 | 
            
            
                | 
                    
                 | 
            
            
                
                    
                        Parameters :
                        
                        
                            
                                
                                    | Name | 
                                    Type | 
                                    Optional | 
                                 
                            
                            
                                
                                    | searchText | 
                                    
                                                any
                                     | 
                                    
                                        No
                                     | 
                                 
                            
                         
                     
                    
                     
                    
                    
                        
                     
                 | 
            
        
    
    
    
    
    
    
    
        
            
                | 
                    
                    
                        dataList
                        
                    
                 | 
            
                
                    
                        Type :         any
                     | 
                
                
                    
                        Default value : []
                     | 
                
                    
                        | 
                                
                         | 
                    
        
    
    
    
    
        
            
                | 
                    
                    
                        limit
                        
                    
                 | 
            
                
                    
                        Type :         number
                     | 
                
                
                    
                        Default value : 15
                     | 
                
                    
                        | 
                                
                         | 
                    
        
    
    
        
            
                | 
                    
                    
                        page
                        
                    
                 | 
            
                
                    
                        Type :         number
                     | 
                
                
                    
                        Default value : 1
                     | 
                
                    
                        | 
                                
                         | 
                    
        
    
    
        
            
                | 
                    
                    
                            Public
                        platform
                        
                    
                 | 
            
                
                    
                        Type :     Platform
                     | 
                
                    
                        | 
                                
                         | 
                    
        
    
    
    
        
            
                | 
                    
                    
                        selectedType
                        
                    
                 | 
            
                
                    
                        Type :         string
                     | 
                
                
                    
                        Default value : 'school'
                     | 
                
                    
                        | 
                                
                         | 
                    
        
    
    
 
    
        import { Component, Input, OnInit } from '@angular/core';
import { LoaderService, UtilsService } from '@app/app/manage-learn/core';
import { KendraApiService } from '@app/app/manage-learn/core/services/kendra-api.service';
import { UnnatiDataService } from '@app/app/manage-learn/core/services/unnati-data.service';
import { ModalController, Platform } from '@ionic/angular';
import * as _ from 'underscore';
import { urlConstants } from '@app/app/manage-learn/core/constants/urlConstants';
import { Location } from '@angular/common';
@Component({
  selector: 'app-filter-modal',
  templateUrl: './filter-modal.component.html',
  styleUrls: ['./filter-modal.component.scss'],
})
export class FilterModalComponent implements OnInit {
  page = 1;
  limit = 15;
  entityTypes: any;
  selectedType = 'school';
  dataList: any = [];
  @Input() type: string;
  @Input() entityId: string;
  searchText: any;
  count: any;
  constructor(
    private loader: LoaderService,
    // public reportSrvc: ReportsService,
    public kendraSrvc: KendraApiService,
    public unnatiSrvc: UnnatiDataService,
    private modalCtrl: ModalController,
    private utils: UtilsService,
    private location: Location,
    public platform: Platform
  ) {
    this.search = _.debounce(this.search, 500);
  }
  ngOnInit() {
    this.dataList = [];
    this.search('');
  }
  typeChange(e) {
    this.selectedType = e.detail.value;
    this.serachEntity(this.searchText);
  }
  search(searchText) {
    if (searchText == null || searchText == undefined) {
      searchText = '';
    }
    this.searchText = searchText;
    this.type == 'entity' ? this.serachEntity(searchText) : this.searchProgramByEntity(searchText);
  }
  async searchProgramByEntity(searchText: any) {
    this.loader.startLoader();
    let payload = await this.utils.getProfileData();
    const config = {
      url:
        urlConstants.API_URLS.GET_PROGRAM_BY_ENTITY +
        // this.entityId +
        `?search=${encodeURIComponent(searchText)}&page=${this.page}&limit=${this.limit}`,
      payload: payload,
    };
    this.unnatiSrvc.post(config).subscribe(
      (data) => {
        this.loader.stopLoader();
        this.dataList = this.dataList.concat(data.result.data);
      },
      (error) => {
        this.loader.stopLoader();
      }
    );
  }
  async serachEntity(searchText: any) {
  }
  getEntityTypes() {
    this.utils.getMandatoryEntitiesList().then((data) => {
      this.entityTypes = data;
    });
  }
  dismissModal(data?) {
    this.modalCtrl.dismiss(data);
  }
  loadData(event) {
    setTimeout(() => {
      event.target.complete();
      this.page++;
      this.search(this.searchText);
      if (this.dataList.length == this.count) {
        event.target.disabled = true;
      }
    }, 500);
  }
}
     
    
        <ion-header  [ngClass]="{'container': platform.is('ios')}" >
  <app-search-header (onSearch)="search($event)">
    <ion-back-button></ion-back-button>
  </app-search-header>
</ion-header>
<ion-content>
  <ion-toolbar class="sb-header-toolbar">
    <ion-buttons class="font-size-20 padding-left-6" (click)="dismissModal()" slot="start">
      <ion-icon slot="start" role="button" name="arrow-back" aria-label="back" class="batches-header-text"></ion-icon>
    </ion-buttons>
  </ion-toolbar>
  <div *ngIf="entityTypes && type == 'entity'">
    <ion-select placeholder="Select One" (ionChange)="typeChange($event)" [value]="selectedType">
      <ion-select-option [value]="t" *ngFor="let t of entityTypes; let i = index">{{
        t | uppercase
      }}</ion-select-option>
    </ion-select>
    <p class="type-filter-container" color="primary">{{ selectedType }}</p>
  </div>
  <div>
    <p class="type-filter-container py-24" *ngIf="type == 'program'" color="primary">Programs</p>
  </div>
  <section>
    <app-no-data *ngIf="!dataList.length"></app-no-data>
  </section>
  <div *ngIf="dataList">
    <ion-item lines="inset" *ngFor="let data of dataList" (click)="dismissModal(data)">
      <ion-label class="ion-text-wrap">{{ data?.name }} </ion-label>
    </ion-item>
    <ion-infinite-scroll threshold="100px" (ionInfinite)="loadData($event)">
      <ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="Loading more data...">
      </ion-infinite-scroll-content>
    </ion-infinite-scroll>
  </div>
</ion-content>
     
    
                
                .type-filter-container {
  display: flex;
  justify-content: center;
  text-transform: capitalize;
  font-size: 1.375rem;
}
.container {
  margin-top: env(safe-area-inset-top);
}
     
    
        
        
            
                Legend
            
            
            
            
                Html element with directive